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
» mise a jour calculatrice
par Jean Claude Aujourd'hui à 9:47

» [solved] 3D_LINE How to ?
par papydall Aujourd'hui à 6:51

» supprimé
par joeeee2017 Dim 15 Oct 2017 - 20:02

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

» Convertisseur de base 10 de 2 à 36
par gigi75 Sam 14 Oct 2017 - 21:54

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

» supprimé
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

» Mise à jour PANOMAND
par jean_debord Mar 26 Sep 2017 - 11:33

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 | 
 

 Comment dessiner une ellipse ?

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

avatar

Nombre de messages : 192
Age : 78
Localisation : HERAULT
Date d'inscription : 15/04/2015

MessageSujet: Comment dessiner une ellipse ?   Lun 27 Avr 2015 - 12:33

Help ! Help ! J'ai besoin de dessiner une ellipse et je ne trouve pas quelle primitive employer dans la liste des références Panoramic. Merci de m'aider S.V.P. ! Parpaiun scratch
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5857
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Comment dessiner une ellipse ?   Lun 27 Avr 2015 - 12:43

Tu as la réponse ici: http://panoramic.free-boards.net/t3211-subs-de-trace-de-figures-geometriques

Je te met le lien car notre ami Papydall avait envoyer le code pour plusieurs figures très interessante et la proc extraite de son code est:

Code:
' ******************************************************************************
' Tracé d'une ellipse
' Appel : Ellipse(xc,yc,rx,ry)
' Paramètres:
' xc,yc : coordonnées du centre de l'ellipse
' rx et ry : respectivement rayon horizontal et rayon vertical de l'ellipse
' si rx = ry on obtient un cercle
' Exemple d'appel :
' Ellipse(250,220,100,200)
' Ellipse(250,220,200,100)

SUB Ellipse(xc,yc,rx,ry)
    dim_local x,y,t,pi,p
    pi = acos(-1) : p = pi/180
    2d_poly_from xc + rx,yc
    for t = 0 to 2*pi step p
        x = xc + rx * cos(t) : y = yc + ry * sin(t) : 2d_poly_to x,y
    next t
END_SUB
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: Comment dessiner une ellipse ?   Lun 27 Avr 2015 - 18:12

Panoramic ne possède pas de commande pour le tracé d’une ellipse.
On peut facilement la coder.
L' équation paramétrique d'une ellipse centrée à l'origine est :
x(t) = a cos(t)
y(t) = b sin (t)

Pour une ellipse dont le centre est xc,yc, son équation devient :
x(t) = xc + a cos(t)
y(t) = yc + b sin (t)

avec
a : demi-diamètre (donc rayon) horizontal
b :  demi-diamètre (donc rayon) vertical
t : angle variant de 0 à 2*pi radians

Si a > b , on a une ellipse  horizontale
Si a < b , l’ellipse est verticale
Si a = b , on a affaire à  un cercle

En fait un cercle n’est qu’une ellipse dont les deux foyers sont confondus au centre.


Dernière édition par papydall le Lun 27 Avr 2015 - 19:43, édité 2 fois (Raison : Correction d'une erreur signalée par ygeronimi qui lit bien mes messages!)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jicehel

avatar

Nombre de messages : 5857
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Comment dessiner une ellipse ?   Lun 27 Avr 2015 - 18:27

Là tu as fait trop simple Papydall. Tu aurais pû nous sortir une formule sur la projection d'un cercle sur un plan donné pour obtenir une élipse ...  Wink   Je plaisante Papydall: ton explication (tout comme ta procédure) répond clairement à la demande


Dernière édition par Jicehel le Lun 27 Avr 2015 - 18:59, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 7994
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: Re   Lun 27 Avr 2015 - 18:31

Ca y est, on a trouvé le responsable de la simplification des appellations à l' éducation nationale !

lol! lol! lol!

Papydal a écrit:
Si a > b , on a une ellipse  horizontale
Si a > b , l’ellipse est verticale
Si a = b , on a affaire à  un cercle
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
mindstorm

avatar

Nombre de messages : 534
Age : 48
Localisation : charente
Date d'inscription : 13/02/2013

MessageSujet: Re: Comment dessiner une ellipse ?   Lun 27 Avr 2015 - 19:27

il est possible de faire une ellipse en appliquant un facteur d'échelle sur un des axes du cercle
mais cela ne vaut que si tu n'as pas d'exigence particulière quant à la géométrie de ton ellipse
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: Comment dessiner une ellipse ?   Lun 27 Avr 2015 - 19:54

@ ygeronimi

Ça prouve que parmi ceux qui lisent ma prose, il y a au moins un qui suit avec intérêt.
Merci ygeronimi, j’ai corrigé là-haut, mais détrompe toi : ce n’est pas moi le responsable   à l’éducation nationale Mad , quant à l’éducation internationale, je crois que je suis pour quelque chose ! Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
papydall

avatar

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

MessageSujet: Re: Comment dessiner une ellipse ?   Mar 28 Avr 2015 - 18:57

Bon, on peut tracer des ellipses (et accessoirement des cercles)  à l’aide de la gdi32.dll  qui se trouve nécessairement sur votre PC.
L'appel de la fonction Ellipse se fait comme suit :

Code:
ret% = dll_call5("Ellipse",hDC%,x1%,y1%,x2%,y2%)

Voici comment faire

Code:

rem ============================================================================
rem            Fonction Ellipse de gdi32.dll
rem pour dessiner une ellipse (et accessoirement un cercle)
rem ============================================================================
dim hDC%,x1%,y1%,x2%,y2%, ret%
hDC% = handle_canvas(0) : ' Handle_canvas de la FORM sur laquelle on dessine
' On définit un rectangle dans lequel sera placé l'ellipse
' Pour dessiner un cercle, il faut donc faire un carré
x1% = 10 : y1% = 100  : ' Coordonnées du point haut/gauche du rectangle
x2% = 300 : y2% = 200 : ' Coordonnées du point bas/droit du rectangle
dll_on "gdi32.dll"
ret% = dll_call5("Ellipse",hDC%,x1%,y1%,x2%,y2%) : ' une ellipse
ret% = dll_call5("Ellipse",hDC%,200,200,300,300) : ' un cercle

dll_off
message "Terminé"
rem ============================================================================


Dernière édition par papydall le Mer 19 Aoû 2015 - 2:36, édité 2 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
JL35



Nombre de messages : 5951
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Comment dessiner une ellipse ?   Mar 28 Avr 2015 - 19:10

Très intéressant papydall, mais... (il y a toujours un mais comme tu dis), avec la gdi32.dll on ne sait pas (enfin, moi je ne sais pas) moduler la couleur et l'épaisseur du trait, les fonctions 2d_pen_width et 2d_pen_color sont inopérantes !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: Comment dessiner une ellipse ?   Mer 29 Avr 2015 - 3:13

Moi non plus, je ne sais pas comment moduler la couleur et l'épaisseur du trait. Embarassed
Par contre je sais que la fonction SetPixel de la gdi32.dll permet d'allumer un pixel avec la couleur transmise en paramètre.
Le problème c'est que je ne sais pas quelle constante attribuée à couleur.

Bon, un petit code vaut mieux que 1000 lignes de prose de Papydall

Code:

dim hDC%,a%,x%,y%,couleur%,ret%
hDC% = handle_canvas(0) : ' Handle_canvas de la FORM sur laquelle on dessine
' couleur% = quoi ?
dll_on "gdi32.dll"
for a% = 100 to 10000
    x% = 250+200*cos(a%/3)
    y% = 220+200*sin(a%/3.5)
    ret% = dll_call4("SetPixel",hDC%,x%,y%,couleur%)
next a%
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Yannick

avatar

Nombre de messages : 7994
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Mer 29 Avr 2015 - 6:44

@ Papydall,

Je reviens un peu en arrière.
Ma petite remarque concernait la formulation de jicehel et non tes explications.
Si tu suis un peu l' actualité française, nous avons récemment entendu les nouvelles
appellations de certaines activités scolaires, pondu par un hurluberlu de notre administration.
Et ce, soit disant, pour une simplification et une meilleur compréhension et communication.

bounce Y a des baffes qui se perdent ! ...et je suis gentil Wink .

Aller, stop, j' arrête de polluer ce sujet...je sors...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
sergeauze

avatar

Nombre de messages : 391
Age : 65
Localisation : Hautes Alpes France
Date d'inscription : 09/01/2010

MessageSujet: Re: Comment dessiner une ellipse ?   Lun 11 Mai 2015 - 2:07

salut je remets au gout du jour ce code
un cercle et plus
Code:

' escape pour arreter
dim x0,y0,r,Px,Py,j%,n%,Pi,a,a0,a1,h,w
Pi = 4*ATN(1)
w=1
rem coordonnées du centre
x0=750
Y0=500
width 0,1500
height 0,1000
rem rayon
r=500

rem nombre de côtés
n%=80
a1 =( 2*Pi/n%)/w: ' angle de rotation de chaque côté

rem angle de début
a0=1

for h = 1 to 120
    Px = r * Cos(a0) + x0
    Py = r/w * Sin(a0) + y0
    2D_poly_from px,py
    a = a0
    For j% = 0 To n%
        a = a + a1
        Px = r*Cos(a) + x0
        Py = r/w*Sin(a) + y0
        2D_poly_to Px, Py
    Next j%
    wait 100
    cls
    a0 = a0 + 1
    w=w+0.1
next h
END
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://sergeauze.blog-video.tv/
Jicehel

avatar

Nombre de messages : 5857
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Comment dessiner une ellipse ?   Lun 11 Mai 2015 - 8:22

Bravo Sergeauze Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
sergeauze

avatar

Nombre de messages : 391
Age : 65
Localisation : Hautes Alpes France
Date d'inscription : 09/01/2010

MessageSujet: Re: Comment dessiner une ellipse ?   Lun 11 Mai 2015 - 16:24

salut
Ce code est le fruit de la collaboration habituelle sur le forum
J’avais demandé comment dessiner un polygone
Jack à donné sa solution, jl35 l'a améliorée, puis j'y ai ajouté ma touche, le mouvement et la perspective;
on peut faire varier n% le nombre de cotes
Le lien du fil de discussion de l'époque
http://panoramic.free-boards.net/t818-un-fil-a-la-patte
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://sergeauze.blog-video.tv/
Jicehel

avatar

Nombre de messages : 5857
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Comment dessiner une ellipse ?   Lun 11 Mai 2015 - 17:11

Oui c'est bien quand il y a échanges. On peut profiter des idées, progresser et avoir d'autres idées suites aux échange (comme Klaus cette nuit avec l'idée de Papydall pour les espaces dans la pile Wink )
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: Comment dessiner une ellipse ?   Lun 11 Mai 2015 - 19:12

… Et pour quelques modifications minimes, on part dans un autre univers, très loin de l’ellipse de départ.

Code:
dim x0,y0,r,Px,Py,j%,n%,Pi,a,a0,a1,h,w
Pi = 4*ATN(1)
w=1
rem coordonnées du centre
x0=750
Y0=500
width 0,1500
height 0,1000
rem rayon
r=500
caption 0,"<CLICK> pour arrêter"
rem nombre de côtés
n%=80
a1 =( 2*Pi/n%)/w: ' angle de rotation de chaque côté

rem angle de début
a0=1
color 0,0,0,0 : 2d_pen_color 255,255,0
for h = 1 to 120
    cls
    Px = r * Cos(a0) + x0
    Py = r/w * Sin(a0) + y0
    2D_poly_from px,py
    a = a0
    For j% = 0 To n%
        a = a + a1
        Px = r*Cos(a) + x0
        Py = r/w*Sin(a) + y0
        2D_poly_to Px, Py : 2D_poly_to Py, Px/2 : 2D_poly_to Py, Px/4
        if scancode <> 0 then terminate
    Next j%
    pause 50
    a0 = a0 + 1
    w=w+0.1
next h
END
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jicehel

avatar

Nombre de messages : 5857
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Comment dessiner une ellipse ?   Lun 11 Mai 2015 - 20:00

Très chouette Papydall (pas le temps de coloriser, je rentre chez moi .... Wink )
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
jimx78

avatar

Nombre de messages : 240
Age : 26
Localisation : Yvelines
Date d'inscription : 24/05/2010

MessageSujet: Re: Comment dessiner une ellipse ?   Lun 11 Mai 2015 - 20:04

c'est joli !


Dernière édition par jimx78 le Lun 11 Mai 2015 - 20:17, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
jimx78

avatar

Nombre de messages : 240
Age : 26
Localisation : Yvelines
Date d'inscription : 24/05/2010

MessageSujet: Re: Comment dessiner une ellipse ?   Lun 11 Mai 2015 - 20:05

Message à supprimer


Dernière édition par jimx78 le Lun 11 Mai 2015 - 20:18, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 7994
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 11 Mai 2015 - 20:10

Je dirai même plus, c' est joli...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5857
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Comment dessiner une ellipse ?   Lun 11 Mai 2015 - 23:25

Bon j'ai eu le temps de faire ma colorisation de ta courbe comme j'aime bien ^^

Code:
dim x0,y0,r,Px,Py,j%,n%,Pi,a,a0,a1,h,w
Pi = 4*ATN(1)
w=1
x0=750 : Y0=500  : ' coordonnées du centre
width 0,1500 : height 0,1000
r=500 : ' rayon
caption 0,"<CLICK> pour arrêter"
n%=160  : ' nombre de côtés
a1 =( 2*Pi/n%)/w : ' angle de rotation de chaque côté
a0=1            : ' angle de début
color 0,0,0,0 : 2d_pen_color 255,255,0: 2d_pen_width 20
for h = 1 to 120
    cls
    Px = r * Cos(a0) + x0 : Py = r/w * Sin(a0) + y0
    2D_poly_from px,py
    a = a0
    For j% = 0 To n%
        a = a + a1 :  Px = r*Cos(a) + x0 : Py = r/w*Sin(a) + y0
        2D_pen_color abs(Px - x0) /2, abs(Py - y0)/2, abs(75-j%)*3
        2D_poly_to Px, Py : 2D_poly_to Py, Px/2 : 2D_poly_to Py, Px/4
        if scancode <> 0 then terminate
        pause 50
    Next j%
    pause 150
    a0 = a0 + 1 :  w=w+0.1
next h
END
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
sergeauze

avatar

Nombre de messages : 391
Age : 65
Localisation : Hautes Alpes France
Date d'inscription : 09/01/2010

MessageSujet: Re: Comment dessiner une ellipse ?   Lun 11 Mai 2015 - 23:30

Mais qu'ont_il fait de mon ellispe confused
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://sergeauze.blog-video.tv/
Jicehel

avatar

Nombre de messages : 5857
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Comment dessiner une ellipse ?   Lun 11 Mai 2015 - 23:45

IsontouKacé !! mdr Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Comment dessiner une ellipse ?   

Revenir en haut Aller en bas
 
Comment dessiner une ellipse ?
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» dessiner?
» dessiner une icone?
» bonjour à tous
» [Dessinez l'avatar de la personne du dessus]
» comment desinstaller pcconfidentiel schredder [Résolu]

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos projets-
Sauter vers: