Fractsaver, économiseur d'écran fractal

Soyez le premier à donner votre avis sur cette source.

Vue 8 428 fois - Téléchargée 711 fois

Description

Et oui, encore un !
Mais comme je le trouvais assez joli, j'ai quand même voulu le poster.
Ce screensaver fait des zooms successifs sur l'ensemble de Mandelbrot, chaque nouvelle image vient se mettre en surimpression sur la précédente, et la première se met en surimpression sur le bureau (voir la capture, c'est peut-être plus clair).

Afin d'accélérer le calcul sur les pixels, l'image est calculée dans un tampon sous forme de matrice.
Je crois que ce prog ne fonctionnera que sous WinXP et Win2K (je ne suis pas sûr).

Conclusion :


Pour une meilleure efficacité du prog, je vous conseille avant de le compiler, de cocher toutes les cases dans Projet>Propriétés de FractSaver onglet Compilation, Optimisations avancées.

PS : Je viens de faire une toute chtite mise à jour, le prog est maintenant 5 fois plus rapide pour tracer les images.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
172
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
4 août 2005

Le problème sous W98 (si problème il y a) semble provenir des deux api que j'utilise pour placer et récupérer un bitmap dans un tampon mémoire : SetDIBits et GetDIBits. Seulement, d'après AllAPI.net, elles sont compatibles avec tous les Windows, donc je pige pas.
Pour plus d'info, tu peux peut-être aller voir ma source précédente (http://www.vbfrance.com/article.aspx?Val=10047) dans laquelle j'utilisais déjà ces deux api, et où l'on m'a prévenu de ce problème. Certains commentaires pourront peut-être t'éclairer, moi en tout cas je n'y suis pas arrivé (en plus je n'ai que WinXP chez moi et je ne peux donc pas tester sur d'autres systèmes).

Bonne prog.
L'auteur.
Messages postés
256
Date d'inscription
jeudi 17 avril 2003
Statut
Membre
Dernière intervention
20 février 2008
1
Il a l'air bien, mais saurais tu comment le faire marcher pour 98 stp ?
Messages postés
185
Date d'inscription
mercredi 18 décembre 2002
Statut
Membre
Dernière intervention
21 mars 2011

Pour qu'il n'y aie plus de transparence il faut mettre cela (à la place de la fonction FusePointQ) :

Public Sub FusePointQ(ByVal X As Long, ByVal Y As Long, Col As RGBQUAD)
BufferB(X, Y).rgbRed = CByte(CInt(Col.rgbRed))
BufferB(X, Y).rgbGreen = CByte(CInt(Col.rgbGreen))
BufferB(X, Y).rgbBlue = CByte(CInt(Col.rgbBlue))
End Sub

C'est vrai, que la vitesse est impressionnante.
Ca serai du C avec cette vitesse, les messages ne seraient pas très gratifiant ! lol
Messages postés
132
Date d'inscription
mercredi 12 juin 2002
Statut
Membre
Dernière intervention
26 janvier 2006

He bas j'ai eu du mal a l'envoyer ce commantaire

Ouai c'est sympa.
En tous c'est beau, mais ca devien tré vit sombre.
Mon idéé serait (Ce n'est qu'une idéé douteuse mais bon...) de faire effacer progressivement les images ancienne.
Mais bon je n'ai pas regarder le code donc peut-etre que ce n'est pas possible.
En tous cas bravo!!

10/10 ;)

PCMAN5
Messages postés
104
Date d'inscription
lundi 17 décembre 2001
Statut
Membre
Dernière intervention
12 février 2007

En un mot: Excellent!!! (mais pas lent... LOL). La vitesse d'exécution est assez surprenante pour un truc comme ça en VB. Bravo!!
Bonne Prog et un chti 10/10 pour la route!
Afficher les 7 commentaires

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.