Page 1 of 3

Fractale Mandelbrot

Unread postPosted: 29 Aug 2017, 00:12
by critor
Exemple de code Python graphique pour calculatrice NumWorks ; fractale Mandelbrot :
Code: Select all
import kandinsky
N_iteration = 10
for x in range(320):
   for y in range(240):
      z_r = 0
      z_i = 0
      c_r = 2.7*x/319-2.1
      c_i = -1.87*y/221+0.935
      i = 0
      while (i < N_iteration) and ((z_r * z_r) + (z_i * z_i) < 4):
         i = i + 1
         stock = z_r
         z_r = z_r * z_r - z_i * z_i + c_r
         z_i = 2 * stock * z_i + c_i
      rgb = int(255*i/N_iteration)
      col = kandinsky.color(int(rgb),int(rgb*0.75),int(rgb*0.25))
      kandinsky.set_pixel(x,y,col)



Edit : Nouvelle version fonctionnelle faisant usage du module cmath, compatible avec le nouveau firmware 1.2.0
Code: Select all
import kandinsky
def mandelbrot(N) :
for x in range(320):
  for y in range(222):
   z=complex(0,0)
   c=complex(2.7*x/319-2.1,-1.87*y/221+0.935)
   i=0
   while i < N and abs(z) < 2:
    j=j+1
    z=z*z+c
   rgb=int(255*i/N)
   col=kandinsky.color(int(rgb),int(.75*rgb),int(.25*rgb))
   kandinsky.set_pixel(x,y,col)

Un gain significatif en performances ! :bj:

Re: Fractale Mandelbrot

Unread postPosted: 29 Aug 2017, 23:12
by Adriweb
Source, avec quelques commentaires : https://github.com/numworks/epsilon/blo ... pp#L10-L32

Sur le simulateur, ça donne ça (histoire d'avoir un screenshot plus joli) :
Image

Re: Fractale Mandelbrot

Unread postPosted: 30 Aug 2017, 00:01
by critor
Merci.

Oui, je ne sais pas pourquoi, mais l'écran NumWorks a un rendu couleur assez mauvais lorsque pris en photo.

Re: Fractale Mandelbrot

Unread postPosted: 01 Sep 2017, 11:11
by titimoby
Le screenshot de Adriweb vient du simulateur lancé en local ?
Maintenant que j'ai réussi une compilation en mode device, il faut que je règle mon souci pour la compil simulator, ce sera très utile pour illustrer des articles/posts par exemple.

Re: Fractale Mandelbrot

Unread postPosted: 01 Sep 2017, 11:12
by critor
Je pense, oui.

Re: Fractale Mandelbrot

Unread postPosted: 01 Sep 2017, 11:26
by Adriweb
Oui.

En reprenant ce qui est marqué ici https://www.numworks.com/resources/engi ... tware/sdk/ :
Code: Select all
make PLATFORM=simulator clean
make PLATFORM=simulator
./app.elf


D'ailleurs je suis en train d'améliorer un peu le look https://github.com/numworks/epsilon/pull/27

Re: Fractale Mandelbrot

Unread postPosted: 01 Sep 2017, 11:35
by titimoby
j'ai depuis hier un topic qui explique les difficultés rencontrées pour compiler sur mon Ubuntu.
ça évitera les galères aux suivants.
Si ça intéresse du monde ici, j'en ferai un topic.

Pour le moment, j'ai la compil pour le device mais encore une erreur pour le simu.
Encore une histoire de version de compilo je pense.

Bref, je ne détourne pas plus ce topic, je pose ma question sur Reddit puisque c'est censé être le forum officiel (dommage d'ailleurs)

Re: Fractale Mandelbrot

Unread postPosted: 01 Sep 2017, 12:07
by critor
Oui, je suis intéressé par ton topic. :)

Et tu peux intervenir tant que tu veux, aucun problème.

Re: Fractale Mandelbrot

Unread postPosted: 01 Sep 2017, 13:04
by titimoby
le toppic sur Reddit :
https://www.reddit.com/r/numworks/comme ... sdk_setup/

C'est mieux si j'ouvre en parallèle ici où j'attend la conclusion finale et je viens faire un résumé fini ici ?

PS: si ceux qui compilent le simulateur pouvaient me dire quelle version de clang et clang++ ils utilisent, ça m'aiderait.

Re: Fractale Mandelbrot

Unread postPosted: 01 Sep 2017, 18:46
by parisse
Je n'ai pas non plus reussi a compiler le simulateur, ni sur mac, ni sur windows 7 (il rale sur freetype-config absent), ni sous ubuntu 16. Je pense qu'il faut en effet un systeme tres a jour.