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
» Panoramic et ses curiosités
par Jean Claude Aujourd'hui à 21:48

» Synedit Parameters
par Jean Claude Aujourd'hui à 21:15

» Utilitaire de suppression de fichiers
par Jean Claude Aujourd'hui à 21:11

» Code à vérifier SVP (Oups ! résolu)
par Jean Claude Hier à 21:16

» Compilateur FBPano
par jean_debord Hier à 9:56

» Bienvenue à Virtualalan !
par UltraVox Hier à 9:18

» Concours de Morpions
par jjn4 Hier à 0:04

» ShortName$(F) [Cloturé]
par papydall Mer 21 Juin 2017 - 16:19

» Remplacer espace par tiret dans noms des dossiers / fichiers
par papydall Mer 21 Juin 2017 - 15:27

» Menu personalisé avec icones et menu contextuel
par Laurent (Minibug) Mer 21 Juin 2017 - 12:44

» La liste des choses à faire ...
par Jack Mar 20 Juin 2017 - 22:49

» Quoi de neuf à propos de Goric 3D ? (@Jack)
par UltraVox Mar 20 Juin 2017 - 21:06

» Nom court et anti fenetre dos
par silverman Mar 20 Juin 2017 - 18:31

» Ludothèque Panoramic
par jjn4 Mar 20 Juin 2017 - 18:09

» Proposition à la communauté
par Yannick Mar 20 Juin 2017 - 15:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Juin 2017
LunMarMerJeuVenSamDim
   1234
567891011
12131415161718
19202122232425
2627282930  
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 : 5384
Age : 66
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 : 5384
Age : 66
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 32 bits :: Vos sources, vos utilitaires à partager-
Sauter vers: