Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| En jouant avec des cercles j’obtiens … des sphères. | |
| | |
Auteur | Message |
---|
Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: En jouant avec des cercles j’obtiens … des sphères. Mar 8 Mar 2016 - 0:48 | |
| La classe Klaus ... Superbe | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: En jouant avec des cercles j’obtiens … des sphères. Mar 8 Mar 2016 - 0:58 | |
| C'est le "remplissage radial" selon un point d'impact, réalisé ligne par ligne (méthode scanline).
| |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: En jouant avec des cercles j’obtiens … des sphères. Mar 8 Mar 2016 - 3:16 | |
| Coloristes à vos pinceaux. - Code:
-
rem ============================================================================ rem Méridiens de la surface de Werner Boy rem ============================================================================
dim p3,p6,p8 : p3 = pi/3 : p6 = pi/6 : p8 = pi/8 dim m,p,a,b,d,e,sa,c2,c3,cm,sm,tc,ts,x1,z1,x,y,t picture 10 : width 10,width(0)-60 : height 10,height(0)-60 2d_target_is 10 caption 0,"<ESC> pour arrêter" for m = 0 to 2*pi step 0.1 p = p + 1 d = 34+4.794*sin(6*m-p3) e = 6.732*sin(3*m-p6) a = d+e b = d-e sa = sin(p8*sin(3*m)) c2 = sqr(a*a+b*b) c3 = (4*d*e)/c2 cm = cos(m) sm = sin(m) for t = 0 to 2*pi step .01 tc = a*cos(t) ts = b*sin(t) x1 = c3+tc-ts z1 = c2+tc+ts x = x1*cm - z1*sa*sm y = x1*sm + z1*sa*cm 2d_point 300+3*x,200-3*y display if scancode = 27 then end next t next m caption 0,"Terminé" rem ============================================================================
| |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: En jouant avec des cercles j’obtiens … des sphères. Mar 8 Mar 2016 - 7:08 | |
| ok, c'est chouette. Très chouette. Voici une colorisation rapide avant d'y aller: - Code:
-
rem ============================================================================ rem Méridiens de la surface de Werner Boy rem ============================================================================
dim p3,p6,p8 : p3 = pi/3 : p6 = pi/6 : p8 = pi/8 dim m,p,a,b,d,e,sa,c2,c3,cm,sm,tc,ts,x1,z1,x,y,t picture 10 : width 10,width(0)-60 : height 10,height(0)-60 2d_target_is 10 caption 0,"<ESC> pour arrêter" for m = 0 to 2*pi step 0.1 p = p + 1 d = 34+4.794*sin(6*m-p3) e = 6.732*sin(3*m-p6) a = d+e b = d-e sa = sin(p8*sin(3*m)) c2 = sqr(a*a+b*b) c3 = (4*d*e)/c2 cm = cos(m) sm = sin(m) for t = 0 to 2*pi step .01 tc = a*cos(t) ts = b*sin(t) x1 = c3+tc-ts z1 = c2+tc+ts x = x1*cm - z1*sa*sm y = x1*sm + z1*sa*cm 2d_pen_color abs(3 * x),abs(3*y), t*40 2d_point 300+3*x,200-3*y display if scancode = 27 then end next t next m caption 0,"Terminé" rem ============================================================================ | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: En jouant avec des cercles j’obtiens … des sphères. Mar 8 Mar 2016 - 10:32 | |
| Effet de lumière encore plus réaliste! - Code:
-
label centre, abort
dim w%, h%, x0%, y0%, r%, xc%, yc%, l%, c%, d, Rouge%, d1, mx, abort% picture 1 : full_space 1 : color 1,255,255,255 2d_target_is 1 w% = width(1) : h% = height(1)
x0% = w%/2 : y0% = h%/2 r% = min(w%,h%)*0.4
2d_pen_color 255,0,0 2d_circle x0%,y0%,r%
on_click 1,centre caption 0,"Clic pour déterminer le point d'éclairage" button 2 : caption 2,"Arrêter" : on_click 2,abort
end
centre: xc% = mouse_x_left_down(1) yc% = mouse_y_left_down(1) if ((xc%-x0%)*(xc%-x0%)+ (yc%-y0%)*(yc%-y0%))>(r%*r%) message "Il faut cliquer DANS le cercle !" return end_if mx = sqr((xc%-x0%)*(xc%-x0%)+ (yc%-y0%)*(yc%-y0%))+r% for l%=(y0%-r%) to (y0%+r%) for c%=(x0%-r%) to (x0%+r%) d = sqr((c%-x0%)*(c%-x0%)+ (l%-y0%)*(l%-y0%)) if d<r% d1 = sqr((c%-xc%)*(c%-xc%)+ (l%-yc%)*(l%-yc%)) Rouge% = 255 - (255 * sqr(d1/mx)) 2d_pen_color 255,Rouge%,Rouge% : ' pour NB, remplacer 255 par Rouge% 2d_point c%,l% end_if next c% display if abort%=1 color 1,255,255,255 2d_pen_color 255,0,0 2d_circle x0%,y0%,r% abort% = 0 return end_if next l% return
abort: abort% = 1 return | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: En jouant avec des cercles j’obtiens … des sphères. Mar 8 Mar 2016 - 11:27 | |
| Et voilà l'effet d'éclairage le plus réaliste que j'aie pu trouver: - Code:
-
label centre, abort
dim w%, h%, x0%, y0%, r%, xc%, yc%, l%, c%, d, Rouge%, d1, mx, abort% picture 1 : full_space 1 : color 1,255,255,255 2d_target_is 1 w% = width(1) : h% = height(1)
x0% = w%/2 : y0% = h%/2 r% = min(w%,h%)*0.4
2d_pen_color 255,0,0 2d_circle x0%,y0%,r%
on_click 1,centre caption 0,"Clic pour déterminer le point d'éclairage" button 2 : caption 2,"Arrêter" : on_click 2,abort
end
centre: xc% = mouse_x_left_down(1) yc% = mouse_y_left_down(1) if ((xc%-x0%)*(xc%-x0%)+ (yc%-y0%)*(yc%-y0%))>(r%*r%) message "Il faut cliquer DANS le cercle !" return end_if mx = sqr((xc%-x0%)*(xc%-x0%)+ (yc%-y0%)*(yc%-y0%))+r% for l%=(y0%-r%) to (y0%+r%) for c%=(x0%-r%) to (x0%+r%) d = sqr((c%-x0%)*(c%-x0%)+ (l%-y0%)*(l%-y0%)) if d<r% d1 = sqr((c%-xc%)*(c%-xc%)+ (l%-yc%)*(l%-yc%)) ' Rouge% = 255 - (255 * sqr(d1/mx)) Rouge% = 255 - (255 * sin((pi/2)*(d1/mx))) 2d_pen_color 255,Rouge%,Rouge% : ' pour NB, remplacer 255 par Rouge% 2d_point c%,l% end_if next c% display if abort%=1 color 1,255,255,255 2d_pen_color 255,0,0 2d_circle x0%,y0%,r% abort% = 0 return end_if next l% return
abort: abort% = 1 return Le commentaire indique comment faire une image en nuances de gris. | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: En jouant avec des cercles j’obtiens … des sphères. Mar 8 Mar 2016 - 14:39 | |
| Je testerais ça ce soir comme je suis au boulot, mais j'ai hâte de voir ce que ça donne. Attention Klaus, j'attend un truc aussi génial que l'éclairage de la sphère ... Pas moins ... | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: En jouant avec des cercles j’obtiens … des sphères. Mar 8 Mar 2016 - 14:41 | |
| @Jicehel C'est beau, Jean-Charles LEBEAU! @Klaus Oui c’est du bel effet. Comme sin(pi/2) est une constante qui vaut 1, remplacer - Code:
-
Rouge% = 255 - (255 * sin((pi/2)*(d1/mx)))
Par - Code:
-
Rouge% = 255 - (255 * (d1/mx))
Et puis, pour accélérer le tracé on peut aussi remplacer - Code:
-
2d_point c%,l%
par - Code:
-
2d_circle c%,l% ,4
Avec un STEP 2 dans les boucles FOR l% et FOR c% | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: En jouant avec des cercles j’obtiens … des sphères. Mar 8 Mar 2016 - 17:33 | |
| @Papydall: Tu dis: - Code:
-
Comme sin(pi/2) est une constante qui vaut 1, remplacer Certes... mais tu n'as pas regardé les parenthèses ! Ma formule est plus complexe que ça. Compare les deux versions, et tu verras la différence ! Ma formule est: - Code:
-
Rouge% = 255 - (255 * sin((pi/2)*(d1/mx))) et donc l'argument de sin() est (pi/2)*(d1/mx) et non (pi/2) ! | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: En jouant avec des cercles j’obtiens … des sphères. Mar 8 Mar 2016 - 18:22 | |
| Tu as raison Klaus comme d’habitude ! | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: En jouant avec des cercles j’obtiens … des sphères. Mer 9 Mar 2016 - 9:05 | |
| | |
| | | Contenu sponsorisé
| Sujet: Re: En jouant avec des cercles j’obtiens … des sphères. | |
| |
| | | | En jouant avec des cercles j’obtiens … des sphères. | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |