papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Un cœur incliné, une ellipse inclinée. Mer 20 Juil 2016 - 19:48 | |
| Un cœur incliné, une ellipse inclinée. En fait on peut tout incliner ! Pour cela, appliquer la matrice de rotation à tous les points de la figure. - Code:
-
xp = cx + (x1*cos(IncliDeg) - y1*sin(Inclideg)) yp = cy - (x1*sin(IncliDeg) + y1*cos(IncliDeg))
Xp,yp : coordonnées du point à tracer Cx,cy : coordonnées du centre de la figure X1,y1 : coordonnées du point avant rotation IncliDeg : valeur de l’angle de rotation (en degré) - Code:
-
rem ============================================================================ rem Inclinaison rem ============================================================================
Incliner() end rem ============================================================================ SUB Incliner() dim_local a degrees for a = 0 to 360 step 30 cls Coeur_Incline(300,250,100,a) Ellipse_Inclinee(100,250,100,50,a) pause 1000 next a END_SUB rem ============================================================================ ' cx,cy = coordonnées du creux du coeur ' Ro = rayon du coeur ' IncliDeg = inclinaison en degrés du coeur par rapport à la verticale SUB Coeur_Incline(cx,cy,ro,IncliDeg) dim_local a,Theta,x1,y1,xp,yp degrees 2d_pen_width 2 ' Calcul du point Origine x1 = sin(IncliDeg) : x1 = Ro*x1*x1*x1 y1 = cos(IncliDeg) : y1 = Ro*(y1-y1*y1*y1*y1) xp = cx + (x1*cos(IncliDeg) - y1*sin(Inclideg)) yp = cy - (x1*sin(IncliDeg) + y1*cos(IncliDeg)) 2d_poly_from xp,yp for a = 0 to 360 ' Calcul du vecteur du Coeur avec Formule de Raphaël Laporte Theta = a + IncliDeg x1 = sin(Theta) : x1 = Ro*x1*x1*x1 y1 = cos(Theta) : y1 = Ro*(y1-y1*y1*y1*y1) ' Application de la matrice de rotation par rapport au centre cx,cy xp = cx + (x1*cos(IncliDeg) - y1*sin(Inclideg)) yp = cy - (x1*sin(IncliDeg) + y1*cos(IncliDeg)) 2d_poly_to xp,yp next a
END_SUB rem ============================================================================
' cx,cy : coordonnées du centre de rotation de l'ellipse ' Rx et Ry sont les longueurs des demi-diagonales ' IncliDeg : inclinaison en degrés de l'ellipse par rapport à la verticale
SUB Ellipse_Inclinee(cx,cy,rx,ry,IncliDeg) dim_local a,x1,y1,xp,yp degrees 2d_pen_width 2 ' Calcul du point Origine x1 = rx*sin(IncliDeg) : y1 = ry*cos(IncliDeg) xp = cx + (x1*cos(IncliDeg) - y1*sin(IncliDeg)) yp = cy + (x1*sin(IncliDeg) + y1*cos(IncliDeg)) 2d_poly_from xp,yp
for a = 0 to 360 x1 = rx*sin(a + IncliDeg) : y1 = ry*cos(a + IncliDeg) ' Application de la matrice de rotation par rapport au centre cx,cy xp = cx + (x1*cos(IncliDeg) - y1*sin(IncliDeg)) yp = cy + (x1*sin(IncliDeg) + y1*cos(IncliDeg)) 2d_poly_to xp,yp next a END_SUB rem ============================================================================
| |
|
Invité Invité
| Sujet: Re: Un cœur incliné, une ellipse inclinée. Jeu 21 Juil 2016 - 8:32 | |
| Je garde ton code. Je pense qu'il me servira à un moment donné. Merci à toi. |
|
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Un cœur incliné, une ellipse inclinée. Jeu 21 Juil 2016 - 13:42 | |
| | |
|
Contenu sponsorisé
| Sujet: Re: Un cœur incliné, une ellipse inclinée. | |
| |
|