begin process at 2010 02 10 11:21:00
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Graphique

 > MESSAGE EN FEU D'ARTIFICE

MESSAGE EN FEU D'ARTIFICE


 Information sur la source

Note :
10 / 10 - par 4 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Graphique Classé sous :projectile, trajectoire, feu, artifice, bonne année Niveau :Initié Date de création :25/12/2008 Date de mise à jour :05/01/2009 13:22:30 Vu / téléchargé :5 959 / 737

Auteur : barbichette

Ecrire un message privé
Site perso
Commentaire sur cette source (30)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Voilà un petit feu d'artifice pour la nouvelle année.

Côté gestion du feu en lui même, rien de bien nouveau. Il doit y en avoir plusieurs sur ce site.

Un point monte puis explose en débris, qui retombent.
En règle général, on affecte une vitesse initiale et une position, puis on le traite comme n'importe quel projectile.

Le problème ici étant de prévoir le point de destination.
Pour afficher le message, on connais où et quand explosent les feux d'artifices.
Pour ce faire, on doit passer par l'équation paramétrique du mouvement d'un projectile. Celui-ci décrivant une parabole.

Faisons un peu de math: On suppose que le temps entre le lancement et l'explosion est constante et vaut MaxT (comme dans mon programme, dingue non...)

Suivant X :
le point va, de façon linéaire du point de lancement au point d'explosion.
donc : X(t)= "Point d'origine"+ t * "différence des abscisses"/MaxT
En gros, interpolation linéaire entre l'origine à l'explosion.

Suivant Y :
le point décris une parabole "y(t)=at²+bt+c".
au temps t=0, y=0 donc c=0.
au temps t=explosion (t=Maxt), la position est y(t). Chose que l'on connais puisque l'on sais où ça explose.
Enfin, pour définir une parabole il faut un troisième point. Pour ce faire, on va supposé que l'on connais le maximum de la courbe (y'(t)=0). Or ce maximum est pile au milieu, entre les deux endroits où la parabole coupe les abscisses. Donc, si le maxi est en N, la courbe coupe les abscisses en (0,0) et en (2N,0). Pour connaitre se point, on pose choisi (au hasard) le maxi de telle sorte qu'il soit pas trop loin du point d'explosion. En d'autres termes, la fusée explose peu de temps avant ou après avoir passée le maxi.

On résout le système, (2 inconnue a et b, et deux équations)
Et miracle... notre feu d'artifice est bien au bonne endroit au bon moment.

Après, c'est de la décoration plus ou moins commentée dans le code.



 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

25 décembre 2008 19:32:13 :
correction dans explication
26 décembre 2008 17:59:06 :
ajout d'une trainé
27 décembre 2008 21:01:45 :
ajout du filtre de flou
29 décembre 2008 15:59:47 :
* libération de la mémoire * code assembleur
05 janvier 2009 13:22:31 :
optimisation, ajout d'effets

 Sources du même auteur

Source avec Zip Source avec une capture THREAD ET BITMAP (DESSIN AU CRAYON)
Source avec Zip Source avec une capture ÉCRAN DE VEILLE FEU D'ARTIFICE
Source avec Zip Source avec une capture ENCORE LOUPÉ
Source avec Zip Source avec une capture JEU LOGICOLOR
RACINE CARRÉE ENTIÈRE

 Sources de la même categorie

Source avec Zip Source avec une capture EFFET VITRE ET THUMBNAILS SOUS VISTA par Bacterius
Source avec Zip Source avec une capture ANAGLYPHEUR OU COMMENT VOIR EN RELIEF LES STÉRÉOSCOPES ANCES... par jfs59
Source avec Zip Source avec une capture DÉFORMER UNE IMAGE AUX DIMENSIONS D'UN QUADRANGLE QUELCONQUE... par FFCAST
Source avec Zip Source avec une capture THREAD ET BITMAP (DESSIN AU CRAYON) par barbichette
Source avec Zip Source avec une capture ÉCRAN DE VEILLE FEU D'ARTIFICE par barbichette

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture ÉCRAN DE VEILLE FEU D'ARTIFICE par barbichette
Source avec Zip JEU - TANKS par floppolf
Source avec Zip Source avec une capture EFFET DE FEU par fbalien
Source avec Zip Source avec une capture METTEZ DES FEUX TRICOLORES DANS VOS APPLICATIONS par grandvizir

Commentaires et avis

Commentaire de Caribensila le 25/12/2008 20:18:22 10/10

Fascinant !  Il y a un style Barbichette, y'a pas à dire...  :)
Les explications ne sont pas superflues, mais elles sont là. Heureusement !
Le bouquet du spectacle étant bien sûr le message. Chapeau !

Un petit regret cependant : Une petite trainée de fumée derrière les fusées qui permettrait de mieux mettre en valeur ces trajectoires si élégantes... Mais bon, c'est du chipotage.


Commentaire de offlake le 25/12/2008 22:22:36

Bon Code !! barbichette
Et bonne année a tous les membres du Site Codes-Souces !!
BY OFFLAKE

Commentaire de cantador le 26/12/2008 10:29:51 10/10

Salut,
transmission de pensée..quand je t'ai écrit, c'est ça que je voulais faire barbichette ! (je cherchais un traitement sur bonne année)
mais la combinaison feu d'artifice + message, super !

Vraiment excellent !

Juste un truc, l'affichage du message "bonne année" est un poil trop court et peut-être aurait il fallut le densifier légèrement.

Bonne année

Commentaire de barbichette le 26/12/2008 18:02:05

voilà, c'est pas vraiment de la fumée, mais plutôt une trainé dans le ciel.
Pour ce faire, je ne dessine plus dans le canvas mais dans un bitmap, puis j'applique un filtre (une sorte de motion blur des plus simple).

Barbichette

Commentaire de Caribensila le 26/12/2008 18:18:42

Superbe!
Et la longueur de la trainée qui varie en fonction de la vitesse, c'est bluffant !

M'en va regarder comment t'as fait ça...  :)

Commentaire de beckerich le 26/12/2008 19:26:21

bravo bravo,
J'ai changé la constante TailleLettre = 20 et on lit mieux le message.
En 10, c'est pas mal non plus mais le mesage s'efface trop vite. Il faudrait ajouter un petit délais entre, mais la fluidité en pâtirait. Mes compétences en graphisme s'approchant de zéro, voire moins, j'ai pas osé essayer comprendre le code.

Merci Barbichette

Commentaire de beckerich le 26/12/2008 19:29:13

mettez la constante à zéro et on assiste à la naissance d'une naine blanche !
Luc.

Commentaire de clipper1 le 27/12/2008 16:57:54

barbichette; avant merci pour le spectacl ca fait rêver je vous souhaite bonne année on a des choses apprendre avec vous ne cesse pas de nous surprendres avec vous codes bonne année

Commentaire de clipper1 le 27/12/2008 17:03:26

jolie spectacle bonne annee barbichette

Commentaire de barbichette le 27/12/2008 21:04:39

Bon, parce que je quitte mon boulot de merde et que je rentre en formation pro, voilà un petit cadeau supplémentaire.
J'ai ajouté au zip la même version (ou presque) mais avec un effet de flou entre chaque image. La fumée des fusées est blanche et les explosions sont donc un peu plus persistante.
Par contre, you you youille la performance...
C'est un peu plus lent....

Barbichette

Commentaire de Debiars le 28/12/2008 10:52:16

Avec le flou, ça devient du grand Art !!!
Au bout d'un moment, on obtient un tableau qui dépasse de loin la production de certains peintres modernes de m...ême qualificatif que celui que tu attribues au boulot que tu quittes.
Bonne chance pour ce nouveau départ.

jp

Commentaire de cantador le 28/12/2008 12:17:07

C'est très beau barbichette !
Pour ton nouveau job,
je te donne le mot de cambronne !
cantador

Commentaire de Caribensila le 28/12/2008 17:05:56

Pour les performances, il serait peut-être intéressant de passer en mode palettisé, pf8bit par exemple... Ou même pf4bit, puisque tu travailles avec moins de 16 couleurs...

Je ne me fais pas de souci pour toi, mais bonne chance quand même !
( il en faut tj un peu ds la vie ;)

Commentaire de cirec le 28/12/2008 18:26:50 administrateur CS

Salut & bonnes fêtes à vous tous ;)

ach ja c'est magnifique !!!
Bravo

j'ai suivi, dans l'ombre, l'évolution de ce code et la le rendu est parfait ... et on a, enfin, le temps de lire ce message avant qu'il n'explose ^^

mais ... il y a un mais ... désolé .. ^^
depuis la deuxième version des fuites de mémoires se sont invitées au code et dans la dernière version ces dernières se sont, légèrement, amplifiées !!!

---------------------------
Unexpected Memory Leak
---------------------------
An unexpected memory leak has occurred. The unexpected small block leaks are:

21 - 28 bytes: TBrush x 1
29 - 36 bytes: TPen x 1, Unknown x 2
37 - 44 bytes: TFont x 1
61 - 68 bytes: TBitmap x 2
101 - 108 bytes: TBitmapCanvas x 1
117 - 124 bytes: TBitmapImage x 2
149 - 156 bytes: Unknown x 1
--------------------------

Ajoute un OnDestroy a la fiche et libères les deux Bitmaps.
Pour améliorer le rendu tu peux aussi ajouter un "ShowCursor(False)" dans le OnCreate

procedure TForm1.FormDestroy(Sender: TObject);
begin
  bmp.Free;
  tmp.Free;
  ShowCursor(True);
end;

Bravo encore pour ce code ... j'attends la correction pour noter ... je ne peux pas mettre un 10/10 a un code qui a des fuites !!!! :x ^^

Commentaire de Caribensila le 28/12/2008 18:48:19

Allez, Barbichette!
Une Pampers anti-fuite à ton beau bébé... et Großonkel Cirec le baptise !

Commentaire de lafarge le 29/12/2008 00:32:09

Comme le dit si bien Caribensia, Fascinant, voilà qui inscite à être humble. Aussi de suite il m'est venu de le traduire en
Anglais "HAPPY NEW YEAR", Je cherche donc la construction du mot à l'aide de votre constante <BonneAnnee>. de type tPoint:
Comme le graphisme n'est pas la matière ou j'excelle loin de là, pourriez-vous nous en dire plus. Sur quelle base (si je peux m'exprimer ainsi)
vous codez votre tableau ->  
BonneAnnee:array[1..110] of tpoint=
( ((x:-10;y:0;),(x:-9;y:0;),                //  B
......................................................
(x:8;y:11;),(x:9;y:11;),(x:10;y:11;));      // E

Merci par avance et pardonnez mon ignorance...
Bravo.

Lafarge

Commentaire de cincap le 29/12/2008 10:45:44

Bonjour à toutes et à tous,

@ Tous, je présente mes meilleurs voeux pour l'an 2009 et 1000 merçi pour l'aide mise à la disposition de tous.

@ barbichette, bravo pour cette source qui fonctionne correctement sous D6.

Je me suis amusé en changeant une couleur dans le oncreate de la fiche, pour faire apparaître le message en vert mais la retombée des débris en une variation de couleurs pour revenir en rouge à la fin.

feu[i].color:= clred ;//Au lieu de $010101;

@+,

Cincap

Commentaire de rt15 le 29/12/2008 13:48:25 administrateur CS 10/10

C'est trop bô. :,)

Chapeau l'artiste !

Commentaire de barbichette le 29/12/2008 16:08:33

Voilà...
je vais faire la liste des modifications...
- J'ai laissé tombé le 2ieme bitmap (TMP), je n'utilise plus qu'une zone mémoire alloué au départ par getmem.
- JE LIBERE LA MEMOIRE....

Pour améliorer la vitesse :
- la dimension du bitmap n'est plus forcement celle de l'écran.
- quand on a de la culture, on l'étale. J'ai donc passé l'algo de flou en assembleur. Et là... Et ben, ça va un petit peu plus vite...
(J'ai laissé quand même la version pascal. A vous de choisir...)

Barbichette

Commentaire de barbichette le 29/12/2008 16:12:02

Lafarge:
Le tableau BonneAnnee contient les points à afficher pour écrire un message.
Si le message est juste un O
on l'écrit par exemple :
OOO (1,1) (2,1) (3,1)
O O (1,2)       (3,2)
O O (1,3)       (3,3)
OOO (1,4) (2,4) (3,4)

donc avec un peu de patience, on peu afficher n'importe quel message.
Attention, il n'y a pas forcement 110 points dans le message.

Commentaire de cirec le 29/12/2008 18:40:01 administrateur CS

oui la mémoire est libérée ... ^^
mais je ne suis pas certain que la nouvelle mouture soit meilleur que la précédente !!!!

en effet , que l'on utilise le flou ASM ou Pascal, l'animation est maintenant saccadée !!!!

comme je n'ai pas conservé l'ancienne version .. je ne peux donc plus faire de testes.

tout ce que je peux te dire c'est que ça consomme trop de ressources pour ce que ça fait !!!!
50% des ressources CPU pour une animation "basique" c'est beaucoup trop ... en comparaison j'anime 8 Bitmaps de 200x200 en vrai 32Bit "Transparence & Semi-Transparence" comme le png et je suis seulement à 15% !!!!

Voilà, pour la solution je te laisse regarder par toi même ^^

Commentaire de barbichette le 29/12/2008 18:52:51

CIREC :
ben, le problème, c'est que je ne connais pas de façon rapide de faire un flou.
Par contre, la différence viens peut-être de la différence de matrice de filtre.
Dans la version précédente, j'utilisais 4 voisins plus le centre.
010
111 / 5
010
Maintenant, j'utilise 8 voisins plus le centre.
111
111 /9
111
Je vais regarder en repassant avec 5 pixels de flou...

Par contre, l'anime était déjà fortement saccadé chez moi avec l'ancienne version... 1 im/sec

Barbichette

Commentaire de cirec le 29/12/2008 19:28:59 administrateur CS

j'ai malheureusement pas fait le rapport FPS !!!
mais il est certain qu'avant, l'animation était fluide et je parle bien de la version avec le flou.

Il est possible que le fait de passer de 5 à 9 pixels explique en partie le ralentissement mais je pense pas que  ce soit tout !!! à voir ;)

Commentaire de offlake le 31/12/2008 23:44:37

Bon Code barbichette !!
Et je vous Souhaite Bonne Année et bonne continuation !!
BY OFFLAKE

Commentaire de aymenk le 02/01/2009 01:36:50

Félicitations ,les Maths et la physique c'est tout ce que j'aime...
BONNE ANNÉE A TOUS LES MEMBRES DE DELPHIFR...
------>>>2009<<<------

Commentaire de cincap le 02/01/2009 10:41:59

Bonjour à toutes et à tous,

@ Barbichette, as tu déjà vu cette applet :

<APPLET code="jhanabi4.class" width="510" height="338">
<param name="para_bits" value="10000">
<param name="para_max"   value="500">
<param name="para_blendx" value="90">
<param name="para_blendy" value="50">
<param name="para_sound" value="2">
<param name="para_time" value="5000">
<param name="para_back" value="images/pont.JPG">
<param name="para_startx" value="245">
<param name="para_starty" value="360">
  Désolé, il est temps de changer de navigateur (Iexploreur 5 et +)
</APPLET>

Click sur l'image dirige les fusées, avec flou, sons et image de fond.

Sinon super ta source.

@+,

Cincap

Commentaire de cincap le 02/01/2009 10:49:37

J'ai oublié le lien :

http://www1.jawink.ne.jp/koji-y/java/jhanabi4e.htm

Plusieurs effets.

@+,

Cincap

Commentaire de Francky23012301 le 03/01/2009 14:47:32 10/10

C'est super sympas ton source.
Coté code : simple mais efficace : fallait y penser ;)

Commentaire de barbichette le 05/01/2009 13:37:40

Alors, mieux vaut copier sur les dieux...
après avoir pomper sa technique de flou sur Bacterius :
http://www.delphifr.com/codes/JOYEUX-NOUVEL-AN-TOUS_48842.aspx
j'ai optimisé mon code et j'ai ajouté quelques effets.
avec les touches :
0 : aucun effet
1 : flou avec la matrice en pascal
121
242 / 16
121
2 : flou avec la matrice en assembleur
121
242 / 16
121
3 : flou avec la matrice en assembleur
010
141 / 8
010
4 : simple fondu en pascal (assombrissement de l'image)
5 : Le fameux flou de Bacterius
Et puis la touche F pour voir le FPS

bon, maintenant, je laisse le bébé à qui voudra en faire un écran de veille, faire en sorte que l'on puisse changer le message, ou afficher plusieurs messages les uns après les autres...
Bref, il y a de quoi faire, mais pas forcement le temps...

Barbichette

Commentaire de cincap le 06/01/2009 14:51:19

Bonjour à toutes et à tous,

@ Barbichette, en choisissant l'option 5, admiration de l'effet puis click sur l'écran pour fermer l'application on obtient une erreur avec D6 "Opération de pointeur incorrecte".

Voila voilou, sinon excellent travail.

Un site à retenir :

http://www.photojoy.com/index.aspx?id=11212

@+,

Cincap

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Relier des points dans une paintbox par une courbe [ par Benjikos ] Bonjour, Je suis un grand débutant en delphi (j'ai commencé y'a 5 semaines!) et je réalise un programme permettrant de comprendre comment on guide un pare feu embetant .... [ par cyber37 ] Salut a tous,Ma spetialiter dans la programation c'est les applications client/serveur (que sa soit un chat, un programe pour transferer des fichier,


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,406 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales