Animations [scanline + algèbre]

Description

Bonjour,
alors voici, à l'approche des vacances de février, un petit programme pour effectuer une animation tout à fait basique, tout

simplement avec Scanline, et un petit peu d'algèbre (équations de droites, trigonométrie ...).
C'est tout bête : tout commence avec une boîte de dialogue débile - choisissez votre mode de qualité (Basse qualité sera plus rapide,

mais beaucoup de scintillements). Ensuite, choisissez votre résolution (commencez avec le plus petit, puis augmentez progressivement

- par exemple, pour moi, ça marche au top sur 128x128, moyen sur 256x256, et ça rame sur 512x512).
Ensuite, vous pourrez voir une belle animation (comme celles qu'on peut eventuellement voir dans les jukebox électroniques - comme dans Windows Media Player, avec la prévisualisation). Les couleurs changement progressivement, parcourent l'arc-en-ciel. Un effet de flou est constamment appliqué pour faire disparaître les animations et laisser la place à d'autres.

Voici la liste des animations :

- Cercle : bon ben un beau cercle qui fait toute l'image.
- Arc : un arc qui tourne progressivement autour de l'image - plus petit que le cercle, volontairement.
- Ligne tournante : une ligne qui effectue une rotation sur le centre de l'image.
- Ligne tournante bizarre : la même ligne, mais avec une accelération radiale (c'est-à-dire qu'elle bouge avec les angles en radians).

Pour l'instant il n'y a que ça, mais ça en jette déjà pas mal.

Comme je travaille avec Scanline, il m'est impossible d'utiliser Canvas.Ellipse pour dessiner les cercles, et LineTo pour les lignes.

J'ai donc dû me débrouiller avec mon tableau de pixels ...
Bon ben c'est simple : pour le cercle, on utilise les sinus et les cosinus, et pour la ligne, on utilise l'équation d'une droite !

Les tables de sinus et de cosinus sont déclarées en tant que constantes. Vous pouvez vous amuser à changer quelques valeurs dans le tableau (tout en conservant une copie, attention), ça fait marrant pour le cercle !

Le tout géré par un thread, avec affichage des FPS et possibilité de mettre en pause, et le dessin géré par un petit timer.

Voilà, j'espère que vous apprécierez :)

On peut obtenir des configurations très interessantes avec un peu de chance.

Ajout de l'unité DialogsEx de Cirec pour pouvoir faire une boîte décente pour la résolution et la haute qualité :)

Source / Exemple :


// In the Zip

Conclusion :


Tous commentaires, critiques, remarques, conseils, etc ... ici :)

Codé sous Delphi 6 Personal Edition !

Cordialement, Bacterius !

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.