FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
Camembert Emptypar Pedro Aujourd'hui à 10:37

» Un autre pense-bête...
Camembert Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Camembert Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Camembert Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Camembert Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Camembert Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Camembert Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Camembert Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Camembert Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Camembert Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Camembert Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Camembert Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Camembert Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Camembert Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Camembert Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le Deal du moment : -47%
SAMSUNG T7 Shield Bleu – SSD Externe 1 To ...
Voir le deal
89.99 €

 

 Camembert

Aller en bas 
5 participants
AuteurMessage
JL35




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

Camembert Empty
MessageSujet: Camembert   Camembert EmptyVen 20 Jan 2012 - 23:22

Klaus nous a fait une excellente dll pour tracer des camemberts (0% de matières grasses, comme pendant la guerre).
Je voulais voir s'il n'y avait pas moyen de faire ça en Panoramic pur (Nardo, tu m'écoutes ? ellipse tracée point par point).
J'ai fait une ébauche, juste comme exercice de style, pour voir, évidemment rien d'aussi élaboré que le travail de Klaus:
Camembert 10ellipse
Code:
LABEL Ellipse, Lipse, Tranche, Stra
DIM x0%, y0%, x%, y%, a%, b%, h%, pi, t1, t2, cr%, cg%, cb%
pi = 4*ATN(1)
x0% = 400: y0% = 200

WIDTH 0, 800: HEIGHT 0, 500
' 2D_LINE 400,0,400,800: 2D_LINE 0,400,800,400: ' axes
a% = 300: b% = 100: ' demi grands axes de l'ellipse
h% = 50: ' hauteur du camembert
cr% = 255: cg% = 255: cb% = 0: GOSUB Ellipse
2D_LINE x0%-a%,y0%,x0%-a%,y0%+h%: 2D_LINE x0%+a%,y0%,x0%+a%,y0%+h%
cr% = 128: cg% = 128: cb% = 0: GOSUB Lipse
' les angles sont dans le sens horaire (anti-trigonométrique)
t1 = pi/4: t2 = pi/4+pi/6: cr% = 255: cg% = 0: cb% = 0: GOSUB Tranche
t1 = t2: t2 = 3*pi/4: cr% = 0: cg% = 255: cb% = 0: GOSUB Tranche
t1 = t2: t2 = 5*pi/4: cr% = 0: cg% = 0: cb% = 255: GOSUB Tranche
t1 = t2: t2 = 3*pi/2: cr% = 255: cg% = 0: cb% = 255: GOSUB Tranche
t1 = t2: t2 = 7*pi/4: cr% = 255: cg% = 255: cb% = 0: GOSUB Tranche
t1 = t2: t2 = pi/4: cr% = 0: cg% = 255: cb% = 255: GOSUB Tranche

END

Ellipse:
FOR y% = -1*b% TO b%
    x% = (a%*SQR(b%*b%-y%*y%))/b%
    2D_POINT x0%+x%, y0%+y%
    2D_POINT x0%-x%, y0%+y%
NEXT y%
FOR x% = -1*a% TO a%
    y% = (b%*SQR(a%*a%-x%*x%))/a%
    2D_POINT x0%+x%, y0%+y%
    2D_POINT x0%+x%, y0%-y%
NEXT x%
2D_FLOOD x0%,y0%,255,255,0: ' coloriage de l'ellipse
RETURN

Lipse:
' 1/2 ellipse
FOR y% = -1*b% TO b%
    x% = (a%*SQR(b%*b%-y%*y%))/b%
    IF y%>=0
        2D_POINT x0%+x%, y0%+y%+h%
        2D_POINT x0%-x%, y0%+y%+h%
    END_IF
NEXT y%
FOR x% = -1*a% TO a%
    y% = (b%*SQR(a%*a%-x%*x%))/a%
    IF y%>=0 THEN 2D_POINT x0%+x%, y0%+y%+h%
NEXT x%
2D_FLOOD x0%,y0%+b%+1,cr%,cg%,cb%: ' coloriage de la paroi
RETURN

Tranche:
DIM x1%, y1%
x% = x0% + a%*COS(t1)
y% = y0% + b%*SIN(t1)
2D_LINE x0%,y0%,x%,y%: ' rayon 1
IF y%>y0% THEN 2D_LINE x%,y%,x%,y%+h%
x1% = x0% + a%*COS(t2)
y1% = y0% + b%*SIN(t2)
2D_LINE x0%,y0%,x1%,y1%: ' rayon 2
IF y1%>y0% THEN 2D_LINE x1%,y1%,x1%,y1%+h%
2D_FLOOD ABS((x1%+x%)/2),ABS((y1%+y%)/2),cr%,cg%,cb%: ' surface de la tranche
IF t1>pi AND t2>pi THEN GOTO Stra
IF t1 <= pi AND t2 <= pi
    2D_FLOOD x%-1,y%+1, cr%/2,cg%/2,cb%/2
ELSE
    IF t1 < pi AND t2>=pi
        2D_FLOOD x%-1,y%+1, cr%/2,cg%/2,cb%/2
    ELSE
        IF t1>=pi AND t2 <= pi
            2D_FLOOD x1%+1,y1%+1, cr%/2,cg%/2,cb%/2
        END_IF
    END_IF
END_IF
Stra:
FREE x1%: FREE y1%
RETURN
Il y a un os: la 1/2 ellipse du bas (dessous du camembert) ne doit pas être étanche, puisque le 2D_FLOOD déborde sur toute la Form.


Dernière édition par JL35 le Sam 21 Jan 2012 - 15:33, édité 3 fois
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Camembert Empty
MessageSujet: Re: Camembert   Camembert EmptySam 21 Jan 2012 - 0:05

Je serais toi, je tracerais plutôt des lignes entre tes points pour faire éventuellement moins de points (et donc augmenter la vitesse du tracé) et pour assurer l'étanchéité du tracé pour le remplissage Smile
Revenir en haut Aller en bas
exdragon

exdragon


Nombre de messages : 601
Date d'inscription : 05/01/2012

Camembert Empty
MessageSujet: Re: Camembert   Camembert EmptySam 21 Jan 2012 - 6:20

En tous cas, c'est pas mal comme travail, c'est fou ce qu'on peut faire avec panoramic ^^
Revenir en haut Aller en bas
JL35




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

Camembert Empty
MessageSujet: Re: Camembert   Camembert EmptySam 21 Jan 2012 - 10:07

@Jicehel pour l'étanchéité tu as sans doute raison, mais pour la rapidité d'exécution à mon avis ça n'entre pas en ligne de compte, le tracé est instantané, ce n'est pas comme si il y en avait des centaines à dessiner.
Et puis la définition serait moins bonne, ou alors il faut multiplier les lignes et ça revient au même.
Mais rien n'empêche d'essayer ! là c'était juste pour voir si c'était possible
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

Camembert Empty
MessageSujet: Re: Camembert   Camembert EmptySam 21 Jan 2012 - 10:27

Je t'écoute, je t'écoute !!!
Oui en effet, je me suis amusé aussi à essayer de le faire en Panoramic pur... Wink
Comme je suis sur autre chose, j'ai laissé tombé...

Mais c'est bien que quelqu'un ce soit lancé dans l'aventure... Wink
Revenir en haut Aller en bas
http://nardo26.lescigales.org
JL35




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

Camembert Empty
MessageSujet: Re: Camembert   Camembert EmptySam 21 Jan 2012 - 13:29

Bon, me voilà nommé explorateur en chef ! je poursuis mes études... Very Happy
Petit rappel de mathématiques élémentaires:
Equation de l'ellipse:
a et b étant les demi grands axes de l'elipse ('rayon' horizontal et vertical), on a
Code:
x*x/a*a + y*y/b*b = 1
Coordonnées d'un point de l'ellipse en fonction de l'angle t (dans le sens horaire):
Code:
x = x0 + a*cos(t)
y = y0 + b*sin(t)
x0 et y0 étant les coordonnées du centre de l'ellipse.
A partir de là on peut tout faire.

Maintenant je vais voir avec mon plombier pour colmater la fuite.
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

Camembert Empty
MessageSujet: Re: Camembert   Camembert EmptySam 21 Jan 2012 - 13:32

Un vrai Matheu le petit jeunot. Very Happy
Revenir en haut Aller en bas
JL35




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

Camembert Empty
MessageSujet: Re: Camembert   Camembert EmptySam 21 Jan 2012 - 14:21

Merci pour le jeunot... il y a quelques décennies que ça ne m'était pas arrivé !

Le plombier a trouvé la fuite, en fait c'était tout bête (comme souvent), je faisais le remplissage de couleur avant d'avoir fermé les côtés... alors ça fuyait de partout ! Embarassed

Edit: voilà, j'ai fait des secteurs colorés, il sera facile de calculer l'angle des secteurs à donner en fonction d'un tableau de valeurs, et d'ajouter des commentaires.
J'ai dessiné la figure sur le Form 0 pour faire vite, mais ce serait mieux sur un Picture dédié.

Voilà, je ne vois rien d'autre à ajouter, pour le moment.
Revenir en haut Aller en bas
Contenu sponsorisé





Camembert Empty
MessageSujet: Re: Camembert   Camembert Empty

Revenir en haut Aller en bas
 
Camembert
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Histogrammes barres et/ou camembert

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: