FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» I Love You
par JL35 Hier à 16:25

» MARK_ON déclenche un événement ON_CLICK à la place de ...
par Jean Claude Mer 18 Oct 2017 - 18:08

» mise a jour calculatrice
par joeeee2017 Mer 18 Oct 2017 - 15:57

» [solved] 3D_LINE How to ?
par Jicehel Mer 18 Oct 2017 - 11:01

» Convertisseur de base 10 de 2 à 36
par gigi75 Mar 17 Oct 2017 - 18:49

» calculatrice avec touches movibles
par joeeee2017 Dim 15 Oct 2017 - 1:11

» CORTANA
par gigi75 Sam 14 Oct 2017 - 16:32

» Calculatrice
par Jean Claude Sam 14 Oct 2017 - 12:30

» Compilateur FBPano
par jean_debord Jeu 12 Oct 2017 - 9:53

» KGF_dll - nouvelles versions
par Klaus Mar 10 Oct 2017 - 18:49

» à propos de Panoramic_Editor [Résolu]
par Klaus Mar 10 Oct 2017 - 3:19

» Un petit "coucou" à tous les Panoramiciens !
par Jack Ven 6 Oct 2017 - 10:24

» Pourquoi le compilateur stagne
par mindstorm Mer 4 Oct 2017 - 20:38

» Panoramic ?
par Marc37 Mer 4 Oct 2017 - 0:39

» Premiers pas avec Arduino
par Marc37 Mer 4 Oct 2017 - 0:29

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Octobre 2017
LunMarMerJeuVenSamDim
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
CalendrierCalendrier

Partagez | 
 

 Un cœur incliné, une ellipse inclinée.

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
papydall

avatar

Nombre de messages : 5546
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Un cœur incliné, une ellipse inclinée.   Mer 20 Juil 2016 - 20: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 ============================================================================
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Invité
Invité



MessageSujet: Re: Un cœur incliné, une ellipse inclinée.   Jeu 21 Juil 2016 - 9:32

Je garde ton code. Je pense qu'il me servira à un moment donné.
Merci à toi.
Revenir en haut Aller en bas
papydall

avatar

Nombre de messages : 5546
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Un cœur incliné, une ellipse inclinée.   Jeu 21 Juil 2016 - 14:42

Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Contenu sponsorisé




MessageSujet: Re: Un cœur incliné, une ellipse inclinée.   

Revenir en haut Aller en bas
 
Un cœur incliné, une ellipse inclinée.
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» On ressort les petites courbes des placards
» Traçage d'un arc d'ellipse

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: