begin process at 2012 05 26 03:28:31
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

ActionScripts

 > ALCHEMY - FRACTALS VIEWER

ALCHEMY - FRACTALS VIEWER


 Information sur la source

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :ActionScripts Classé sous :Alchemy, Fractale, Librairie, Mathematiques, Calculs Niveau :Expert Date de création :13/07/2009 Date de mise à jour :13/07/2009 20:02:40 Vu / téléchargé :4 589 / 493

Auteur : stefbuet

Ecrire un message privé
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note


 Description

Cliquez pour voir la capture en taille normale
->Préambule :

Voici la première source sur Flashkod qui traite de la technologie Alchemy développée spécialement pour les applications Flash. Alchemy est en faite une technologie qui permet d'utiliser la puissance du C ou C++ afin d'accélérer les traitements lourds de vos animations tel que l'encodage PNG, ou le cryptage de données.

Adobe, en lançant cette technologie, à fournit une API de developpement en C à utiliser pour créer des fonctions utilisables par la suite dans le code Action Script dans son SDK. Il est regrettable de voir que presque personne ne s'intéresse à cette technologie bien qu'elle ait été publiée il y a plus d'un ans de cela...

En gros, Alchemy permet de réutiliser des fonctions C ou C++ directement dans votre code Action Script. Le code C++ ou C doit être préalablement compilé grâce au compilateur du SDK et il donnera un fichier SWC, c'est à dire du byte code, comme lorsque vous compilez vos anims en SWF. Mais le compilateur utilisé est bien plus puissant que celui de Flash ou Flex et le byte code est donc très optimisé réduisant juscqu'à 10x les temps de calculs !

->La source :

Ici pour tester cette technologie, j'ai developpé une petite application pour admirer des fractales à l'ecran. Le calcul de la couleur de tous les pixels est effectué dans une fonction C++ qui à été compilée par le compilateur fournit avec le SDK. J'ai pris les fractales car ce sont des objets Mathématiques très lourdes à calculer.

Plusieurs fractales dispo : Mandelbrot ou Julia. Pour cette dernière les parametres de son equation C et D sont ajustable. Reglage de la couleur, nombre d'itération par pixel (plus il y en a, plus c'est proche de la réalité), déplacement à la souris, zoom avec molette souris...


Source

  • Contenu des fichiers :
  • Main.cpp : fonctions C++ permettant de calculer la couleurs des pixel des fractales.
  • main_empty.fla : Rien, paramétré pour compiler le fichier Fractal.as
  • Fractal.as : Code Action Script AS3 qui utilise les fonctions C++ et gère l'application.
  • fractals.swc : Code C++ compilé en bytecode, résultant du fichier Main.cpp.
  • main_empty.swf : Application finale!
Contenu des fichiers :
Main.cpp : fonctions C++ permettant de calculer la couleurs des pixel des fractales.
main_empty.fla : Rien, paramétré pour compiler le fichier Fractal.as
Fractal.as : Code Action Script AS3 qui utilise les fonctions C++ et gère l'application.
fractals.swc : Code C++ compilé en bytecode, résultant du fichier Main.cpp.
main_empty.swf : Application finale! 

 Conclusion

Pour la fractale de julia, voici quelques paramètres qui rendent bien :
c:0.2, d:0.63, 100 itérations
c:0.08, d:0.63, 300 itérations
c:0.04, d:0.63, 300 itérations
c:0.05, d:0.63, 300 itérations

---------------

Le but de la source est bien sur avant tout de fournir un exemple d'utilisation d'Alchemy et non pas de présenter un explorateur de fractales, en effet cette application est un exemple d'utilisation d'Alchemy uniquement, le fait de pouvoir explorer les fractales avec pas mal d'option est une sorte de... bonus :D
Les fractales sont des objets mathématiques resultant d'équations imaginaires. Plus d'infos ici : http://fr.wikipedia.org/wiki/Fractale

Pour en savoir plus sur Alchemy :
http://labs.adobe.com/technologies/alchemy/

Pou r savoir comment installer le SDK pour utiliser Alchemy :
http://labs.adobe.com/wiki/index.php/Alchemy:Doc umentation:Getting_Started

Pour voir la documentation de l'API C/C++ de Flash pour Alchemy :
http://labs.adobe.com/wiki/index.php/Alchemy:Doc umentation:Developing_with_Alchemy:C_API

 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

13 juillet 2009 20:01:30 :
Ajout de valeurs de paramètres équation Julia simpas. Correction titre car source uploadée.
13 juillet 2009 20:02:40 :
Correction définition fractales.

 Sources du même auteur

Source avec Zip Source avec une capture [AS3 - CS4] MOTION BLUR EFFECT
Source avec Zip Source avec une capture [AS3 - CS4] CLASSE EFFET HDR GLOW
Source avec Zip Source avec une capture SPACE SURVIVOR
Source avec Zip Source avec une capture CLASS MOTEUR PARTICULES ENTIEREMENT PARAMETRABLE SIMPLE A UT...
Source avec Zip Source avec une capture CLASS SCROLLBAR COMPLETEMENT PARAMETRABLE

 Sources de la même categorie

Source avec Zip Source avec une capture OUVRIR UNE ANIMATION EXTERNE DANS UN CLIP VIDE. par KcHeY
Source avec Zip ZOOM SUR UNE IMAGE par yasdar
Source avec Zip Source avec une capture UN PEU DE MATH par yasdar
Source avec Zip Source avec une capture PARTICULE SYSTEM par yasdar
Source avec Zip Source avec une capture GALLERIE PHOTO AVEC XML par yasdar

Commentaires et avis

Commentaire de gremlins7 le 14/07/2009 20:35:16 10/10

Salut,
Merci pour ce code, je savais pas que l'on pouvait integrer du C++. Je commence à peine à regarder ton code, je n'ai donc aucun commentaires à faire, mais nous donner cette info justifie la note. J'éspère que, comme tu dis, ça fait gagner du temps de calcul, je vais de ce pas evaluer ce gain de temps.
Encore merci
Grems

Commentaire de stefbuet le 14/07/2009 22:33:56

Salut,

Tout d'abord je te souhaite bon courage pour installer le SDK, comme tu va le constater, c'est un peu galère, au niveau de la partie qui utilise Cygwin. Mais une fois installé, la possibilité de compiler le code C ou C++ via les compilateurs gcc ou g++ en 3 lignes est appréciable :)

Ensuite, il faut savoir que Alchemy ne donne pas un rendement x10 dans tous les cas, et une mauvaise utilisation de celui-ci peut rendre l'application très très lente, bien plus qu'en AS3 pur. Par exemple si tu veux remplir tous les pixels d'un BitmapData, bien que tu le puisses, il ne faut pas utiliser la fonction setPixel directement depuis ton code C++, oh non! La meilleur façon de récupérer des données calculées via Alchemy est de les récupérer directement depuis l'adresse mémoire utilisée par Alchemy dans la RAM, et tu y accède via un ByteArray (cf. source).

Alchemy est donc bon pour le calcul pur et dur. Donc pour tout ce qui est encryption, encodage, calculs arigthmetiques, c'est une vrai bête. Par contre à ne surtout pas utiliser pour refaire une animation Flash en entier, bien que l'API du SDK en C permette de créer tous les objets que l'on veux, et appeler toutes les fonctions de ces objets, cela reste extremement plus lent qu'avec de l'AS3.

A guise d'exemple, pour remplir une petite zone de 100x100 pixels via des appels redondants de la méthode setPixel dans un Bitmapdata, on arrive avec l'AS3 à un résultat instantané, tandis qu'Alchemy dépasse les 15s limite de calcul du Flash Player par default :D.

->Donc Alchemy vous aidera pour des -calculs- et non pas des manipulations d'objets.

Stef.

Commentaire de gremlins7 le 15/07/2009 10:17:52

Re, oui j'ai galéré sévère pour l'installer, en plus cygwin c'est ultra chiant, mais bon. Je crois que je vais installer une version quelconque de linux (helas, j'ai pas de mac). En tout cas ça répond exactement à mon besoin, c'est à dire le calcul pur et dur (sans manipulation d'objet).
Je vais me faire un peu la main dessus en évaluant les temps d'exécution avec des simple boucles for, je ferai un retour pour ceux que ça intéresse.
A+

Commentaire de BlackWizzard le 03/08/2009 00:01:24 administrateur CS 10/10

Super source!

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

librairie de SWF ? [ par carolecha ] Bonjour !Je voudrais savoir s'il est possible de récupérer un swf avec tous ses objets et ses propriétés déjà généré pour le réutiliser en changeant j classe et #include [ par squam ] bonjour,Je commence tout juste a utiliser les classe en en as 2.Voila j'ai une "librairie de fonctions" diverse que je voudrais utiliser pour la Importation dynamique de librairie partagée [ par Yoann19 ] Bonjour,Afin d'alléger et simplifier mon application Flash, je souhaiterais utiliser dynamiquement la librairie partagée. En fait mon application crée Typo fractale [ par a_tom_ique ] Je suis graphiste, je passe mon diplôme, je n'ai pas de compétence en code mais je comprend quelques trucs. Cela dit je voudrais faire une typographie Questions à choix multiple: Problème de score [ par samijaber ] Salut à tous. Actuellement je suis en train de faire un QCM qui est composé de 2 parties : mathématiques et physiques (des questions des 2 matières av Utilisation de la librairie AlivePDF.swc dans un projet flash cs4 [ par daddy11world ] Bonjours [b]Comment utilise-t-on une librairie SWC sous flash ?[/b] J'ai besoin de générer un fichier PDF dans un projet Flash. La librairie AlivePD Calculs dans Flash [ par Th3L0rD01 ] Bonjour à tous !! Je fais appel à vos connaissances afin d'obtenir de l'aide pour mon problème. Je suis présentement à me concevoir un site en flash


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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,437 sec (4)

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