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
» Attention arnaque !
par Pedro Alvarez Hier à 20:03

» Qui fait quoi ?
par silverman Hier à 15:21

» ITEM_SELECT N,L pour synedit
par silverman Hier à 15:20

» Boussole
par jean_debord Hier à 11:06

» Roue à n faces
par Marc Dim 15 Juil 2018 - 22:16

» Planétarium virtuel.
par Pedro Alvarez Dim 15 Juil 2018 - 16:05

» Exemple d'une nouvelle version d'un GRID
par Jean Claude Ven 13 Juil 2018 - 10:32

» Roues dentées
par jean_debord Mar 10 Juil 2018 - 11:30

» Une simple question
par Oscaribout Sam 7 Juil 2018 - 23:20

» BUG sur l'objet TAB
par Jack Sam 7 Juil 2018 - 21:12

» Monopoly moderne
par jjn4 Sam 7 Juil 2018 - 15:06

» Récapitulatif ludothèque panoramic jjn4
par jjn4 Ven 6 Juil 2018 - 17:41

» Lignes ondulées
par JL35 Ven 6 Juil 2018 - 17:39

» bug off_activate 0 : sans d'effet
par silverman Ven 6 Juil 2018 - 13:02

» Position des objets d'un conteneur dans FBPano et Panoramic
par Navigateur Ven 6 Juil 2018 - 12:59

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

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

Partagez | 
 

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

Aller en bas 
AuteurMessage
papydall

avatar

Nombre de messages : 5979
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 - 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 ============================================================================
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 - 8: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 : 5979
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 - 13: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.
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: