FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
Feux d'artifice Emptypar Pedro Aujourd'hui à 10:37

» Un autre pense-bête...
Feux d'artifice Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Feux d'artifice Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Feux d'artifice Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Feux d'artifice Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Feux d'artifice Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Feux d'artifice Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Feux d'artifice Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Feux d'artifice Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Feux d'artifice Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Feux d'artifice Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Feux d'artifice Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Feux d'artifice Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Feux d'artifice Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Feux d'artifice Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le deal à ne pas rater :
Smartphone Xiaomi 14 – 512 Go- 6,36″ 5G Double SIM à 599€
599 €
Voir le deal

 

 Feux d'artifice

Aller en bas 
4 participants
AuteurMessage
jean_debord

jean_debord


Nombre de messages : 1266
Age : 70
Localisation : Limoges
Date d'inscription : 21/09/2008

Feux d'artifice Empty
MessageSujet: Feux d'artifice   Feux d'artifice EmptyMar 29 Mai 2018 - 9:15

Le 14 juillet est encore loin mais on peut déjà s'y préparer avec ce petit programme pour FBPano Smile

Code:

' Feu d'artifice - D'apres le forum FreeBASIC
' ----------------------------------------------------------------------

' written by BasicCoder with improvements by counting_pine 28th May 2018

const Pi = 4 * atn(1)
const DtoR = Pi / 180   ' degrees * DtoR = radians
const N = 100
const FPS = 30

type SPARK = (px, py, vx, vy, c%, a%, exploding%)

dim sparks<SPARK>(N)
dim total%

fb_form 640, 480, "Feu d'artifice... Pressez ESC pour arreter"

randomize timer

fb_animate adr(draw_frame), adr(event_keyboard), , FPS


sub drawSparks()

  if total = 0 then exit_sub

  dim i%, j%, dx, dy, angle, rr

  fb_cls

  for i = 0 to total - 1
    if i < total - N then i = total - N
    with sparks(i mod N)
      if .py < 240 then .exploding = TRUE
      ' random sparks within circle radius rr
      fb_pen_color .c
      for j = 0 to 29
        rr = int(rnd * .a)                  ' gets wider each time
        angle = int(Rnd * 360) * DtoR
        dx = cos(angle) * rr
        dy = sin(angle) * rr
        fb_pie .px + dx, .py + dy, int(rnd * 2) + 1
      next j
      .px = .px + .vx
      .py = .py + .vy
      .vy = .vy + 0.1                   ' gravity
      if .exploding then .a  = .a + 1   ' increase width
    end_with
  next i
end_sub

sub draw_frame(done%)

  dim r%, g%, b%

  if int(rnd * 50) = 0 then
    with sparks(total mod N)
      .a = 2
      .px = 320                            ' position (px, py)
      .py = 430
      .vx = int(rnd * 5) - 2               ' speed (vx, vy)
      .vy = -8
      .exploding = FALSE
      hsvtorgb (rnd * 360), 1, 1, r, g, b
      .c = rgb(r,g,b)                      ' color
    end_with
    total = total + 1
  end if

  drawSparks()
end_sub

sub event_keyboard(event_type%, keycode%, done%)
  done = (keycode = 27)
end sub
Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Feux d'artifice Empty
MessageSujet: Re: Feux d'artifice   Feux d'artifice EmptyMar 29 Mai 2018 - 16:32

Ce feu d’artifice est beaucoup mieux que le mien. Crying or Very sad
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

Feux d'artifice Empty
MessageSujet: Re: Feux d'artifice   Feux d'artifice EmptyMar 29 Mai 2018 - 17:51

Oui c'est un vrai feu d'artifice et très joli.
Le tien, Papydall n'était pas si mal !

J'ai passé au moins 2 heures à bidouiller le code pour obtenir un feu d'artifice en plein écran.
Cela n'a pas été de la tarte, mais je suis parvenu à un résultat satisfaisant.  pirat   Very Happy

Voici le code modifié (Pour l'éditeur FB_Pano)

Code:
' Feu d'artifice - D'apres le forum FreeBASIC
' ----------------------------------------------------------------------

' written by BasicCoder with improvements by counting_pine 28th May 2018

const Pi = 4 * atn(1)
const DtoR = Pi / 180   ' degrees * DtoR = radians
const N = 250
' FPS=30
const FPS = 50

type SPARK = (px, py, vx, vy, c%, a%, exploding%)

dim sparks<SPARK>(N)
dim total%

fb_form 1460, 960, "Feu d'artifice... Pressez ESC pour arreter"

randomize timer

fb_animate adr(draw_frame), adr(event_keyboard), , FPS


sub drawSparks()

  if total = 0 then exit_sub

  dim i%, j%, dx, dy, angle, rr

  fb_cls

  for i = 0 to total - 1
    if i < total - N then i = total - N
    with sparks(i mod N)
      if .py < 240 then .exploding = TRUE
      ' random sparks within circle radius rr
      fb_pen_color .c
      for j = 0 to 50
        rr = int(rnd * .a)               ' gets wider each time
        angle = int(Rnd * 360) * DtoR
        dx = cos(angle) * rr
        dy = sin(angle) * rr
        fb_pie .px + dx, .py + dy, int(rnd * 1) + 1.3
      next j
      .px = .px + .vx
      .py = .py + .vy
' .vy = .vy + 0.1
      .vy = .vy + 0.08                   ' gravity
'       if .exploding then .a  = .a + 1   ' increase width
      if .exploding then .a  = .a + 1.2   ' increase width
    end_with
  next i
end_sub

sub draw_frame(done%)

  dim r%, g%, b%

  if int(rnd * 30) = 0 then
    with sparks(total mod N)
      .a = 4

'      .px = 320                            ' position (px, py)
'      .py = 430

      .px = 720                            ' position (px, py)
      .py = 800

'      .vx = int(rnd * 5) - 2               ' speed (vx, vy)
'      .vy = -8

      .vx = int(rnd * 10) - 4               ' speed (vx, vy)
      .vy = -10
 
     .exploding = FALSE
      hsvtorgb (rnd * 360), 1, 1, r, g, b
      .c = rgb(r,g,b)                      ' color
    end_with
    total = total + 12
  end if

  drawSparks()
end_sub

sub event_keyboard(event_type%, keycode%, done%)
  done = (keycode = 27)
end sub

A+
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Feux d'artifice Empty
MessageSujet: Re: Feux d'artifice   Feux d'artifice EmptyMar 29 Mai 2018 - 17:56

Il ne reste plus qu'à y mettre du Boum Boum !
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

Feux d'artifice Empty
MessageSujet: Re: Feux d'artifice   Feux d'artifice EmptyMar 29 Mai 2018 - 18:01

Oui ce serait sympa !

J'ai conservé le code, un jour il faudra que j'essai de sonoriser la chose.
Mais je n'est pas encore tenté de coder avec FB_Pano. En ce moment je n'ai de temps que pour tester et m'amuser à bidouiller. Razz

A+
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

Feux d'artifice Empty
MessageSujet: Re: Feux d'artifice   Feux d'artifice EmptyMar 29 Mai 2018 - 18:41

Encore un peu de bidouillage.
Je me suis arrangé pour que les explosions ne soit pas toujours à la même hauteur.
C'est plus réaliste !

Voici le code modifié (Pour l'éditeur FB_Pano)
Code:
' Feu d'artifice - D'apres le forum FreeBASIC
' ----------------------------------------------------------------------

' written by BasicCoder with improvements by counting_pine 28th May 2018

const Pi = 4 * atn(1)
const DtoR = Pi / 180  ' degrees * DtoR = radians
const N = 250
' FPS=30
const FPS = 50

type SPARK = (px, py, vx, vy, c%, a%, exploding%)

dim sparks<SPARK>(N)
dim total%

fb_form 1460, 960, "Feu d'artifice... Pressez ESC pour arreter"

randomize timer

fb_animate adr(draw_frame), adr(event_keyboard), , FPS


sub drawSparks()

  if total = 0 then exit_sub

  dim i%, j%, dx, dy, angle, rr, expl%

  fb_cls

  expl%=800

  for i = 0 to total - 1
    if i < total - N then i = total - N
    with sparks(i mod N)
    expl%=expl% - 50
    if expl%<200 then expl%=800
    if .py < expl% then .exploding = TRUE
      ' random sparks within circle radius rr
      fb_pen_color .c
      for j = 0 to 50
        rr = int(rnd * .a)              ' gets wider each time
        angle = int(Rnd * 360) * DtoR
        dx = cos(angle) * rr
        dy = sin(angle) * rr
        fb_pie .px + dx, .py + dy, int(rnd * 1) + 1.3
      next j
      .px = .px + .vx
      .py = .py + .vy
' .vy = .vy + 0.1
      .vy = .vy + 0.08                  ' gravity
'      if .exploding then .a  = .a + 1  ' increase width
      if .exploding then .a  = .a + 1.2  ' increase width
    end_with
  next i
end_sub

sub draw_frame(done%)

  dim r%, g%, b%

  if int(rnd * 30) = 0 then
    with sparks(total mod N)
      .a = 4

'      .px = 320                            ' position (px, py)
'      .py = 430

      .px = 720                            ' position (px, py)
      .py = 800

'      .vx = int(rnd * 5) - 2              ' speed (vx, vy)
'      .vy = -8

      .vx = int(rnd * 10) - 4              ' speed (vx, vy)
      .vy = -10
 
    .exploding = FALSE
      hsvtorgb (rnd * 360), 1, 1, r, g, b
      .c = rgb(r,g,b)                      ' color
    end_with
    total = total + 12
  end if

  drawSparks()
end_sub

sub event_keyboard(event_type%, keycode%, done%)
  done = (keycode = 27)
end sub
Revenir en haut Aller en bas
Ouf_ca_passe




Nombre de messages : 285
Age : 76
Localisation : Villeneuve d'Ascq (59-Dpt du NORD) France
Date d'inscription : 21/12/2015

Feux d'artifice Empty
MessageSujet: BOUM !   Feux d'artifice EmptyMer 30 Mai 2018 - 8:24

J'ai changé la résolution pour l'adapter à mon écran (1920 x 1080)

And you know what ?

Ca a marché.

Sauf que ce programme prend la main sur ma personnalisation de luminosité d'écran. Mais bon ...

Grand merci aux divers contributeurs et bonne journée.
Revenir en haut Aller en bas
Ouf_ca_passe




Nombre de messages : 285
Age : 76
Localisation : Villeneuve d'Ascq (59-Dpt du NORD) France
Date d'inscription : 21/12/2015

Feux d'artifice Empty
MessageSujet: Pyramide renversée pour 3d holographique   Feux d'artifice EmptyMer 30 Mai 2018 - 9:06

Dis monsieur

Pouvez-vous adapter le programme pour mon écran (posé à l'horizontale) pour que je puisse m'émerveiller de l'animation en 3D holographique ?

oui, je sais, j'en demande beaucoup.
Revenir en haut Aller en bas
jean_debord

jean_debord


Nombre de messages : 1266
Age : 70
Localisation : Limoges
Date d'inscription : 21/09/2008

Feux d'artifice Empty
MessageSujet: Re: Feux d'artifice   Feux d'artifice EmptyMer 30 Mai 2018 - 9:16

Merci pour vos tests et vos améliorations !

L'avantage de ce type de programme, c'est qu'ils sont très simples tout en permettant beaucoup d'expérimentations.

Pour la sonorisation, D. J. Peters a fait une très belle bibliothèque pour FreeBASIC :

https://freebasic.net/forum/viewtopic.php?f=14&t=17740

On peut jouer des musiques en fond sonore pendant une animation. ça marche très bien Smile

Reste à l'adapter à FBPano...
Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
jean_debord

jean_debord


Nombre de messages : 1266
Age : 70
Localisation : Limoges
Date d'inscription : 21/09/2008

Feux d'artifice Empty
MessageSujet: Re: Feux d'artifice   Feux d'artifice EmptyMer 30 Mai 2018 - 9:20

Ouf_ca_passe a écrit:

Pouvez-vous adapter le programme pour mon écran (posé à l'horizontale) pour que je puisse m'émerveiller de l'animation en 3D holographique ?

Très simple : mettez des pétards dans l'ordinateur et allumez la mèche.

Rien ne vaut l'ordinateur analogique !
Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
Contenu sponsorisé





Feux d'artifice Empty
MessageSujet: Re: Feux d'artifice   Feux d'artifice Empty

Revenir en haut Aller en bas
 
Feux d'artifice
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Feux de signalisation
» Animation: Feux de signalisation

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: Grands projets réalisés avec Panoramic :: Compilateur FBPANO-
Sauter vers: