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.
SuperEllipse Emptypar Pedro Aujourd'hui à 10:37

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

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

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

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

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

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

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

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

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

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

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

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

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

» fichier.exe
SuperEllipse 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 €

 

 SuperEllipse

Aller en bas 
5 participants
AuteurMessage
papydall

papydall


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

SuperEllipse Empty
MessageSujet: SuperEllipse   SuperEllipse EmptySam 19 Sep 2015 - 5:27

Tout est dans le code.
Pas besoin de blablabla!


Code:
rem ============================================================================
rem       SuperEllipse
rem       Par Papydall
rem ============================================================================
Init()
DrawGallery()
end
rem ============================================================================
SUB Init()
    label spi,quit
    dim i
    width 0,1000 : height 0,700
    top 0,(screen_y - height(0))/2 : left 0,(screen_x - width(0))/2
    alpha 10 : top 10,5 : left 10,100 : font_bold 10 : font_name 10,"Tahoma"
    font_size 10,14 : font_color 10,0,0,128
    font_bold 0 : font_size 0,10 : font_name 0,"tahoma": font_color 0,0,0,255

    button 20 : top 20,620 : left 20,400 : caption 20,"Spirale": on_click 20,spi
    button 30 : top 30,620 : left 30,400 : caption 30,"Quitter": hide 30 : on_click 30,quit
END_SUB
rem ============================================================================
spi:
   hide 20 : DrawSpiral()
return
rem ============================================================================
quit:
    for i = height(0) to 0 step -5 : height 0,i : pause 10 : next i
    terminate
return
rem ============================================================================
SUB DrawGallery()
    dim_local i,j, angle$, pen,k,r,g,b
    caption 10,"Galerie de formes créées utilisant la SUB SuperEllipse"
    color 0,224,232,255 : 2d_pen_color 128,128,128
    For i = 16 To 800 STEP 16 : 2d_Line i,68,i, 599 : Next i
    For i = 68 To 600 STEP 16 : 2d_Line 0,i, 799 ,i : Next i
    2d_pen_color 0,0,128
    For i = 0 To 12
        angle$ = Str$(i * 30) + "°"
        while len(angle$) < 4 : angle$ = "0" + angle$ : end_while
        print_locate i*60+20,40 : print angle$
    Next i
    print_locate 800,40 : print "<==== Angles de rotation"
    print_locate 850,60 : print "dans le sens horaire"
    pen = 2 : k = 0 : r = 0 : g = 0 : b = 255
    For j = 32 To 795 STEP 60
        2d_pen_color r,g,b
        SuperEllipse(j,97,  24, 18,.35,18, pen, k)
        SuperEllipse(j,154, 24, 18,.75,18, pen, k)
        SuperEllipse(j,201, 24, 18, 1, 4,  pen, k)
        SuperEllipse(j,268, 24, 24, 2, 5,  pen, k)
        SuperEllipse(j,325, 24, 24, 2, 7,  pen, k)
        SuperEllipse(j,382, 24, 18, 2, 18, pen, k)
        SuperEllipse(j,440, 24, 18, 3, 18, pen, k)
        SuperEllipse(j,497, 24, 18, 5, 18, pen, k)
        SuperEllipse(j,554, 24, 18, 10,18, pen, k)
        
        k = k + 30 : r = r + 21.25 : b = b - 21.25 : ' pen = pen + .3
    Next j
END_SUB
rem ============================================================================
' ********************************** SUB SuperEllipse **************************
' ** Paramètres:
' ** centerX, centerY : Coordonnées du centre de la SuperEllipse
' ** wide : Rayon-X de la SuperEllipse
' ** high : Rayon-Y de la SuperEllipse
' ** REMARQUE : Faire wide = high pour tracer des cercles, des carrés et des polygones réguliers
' ** exponent - Détermine la forme de la Superellipse    (.15 <= exp <= 99)
' ** exponent = .15 : Dessine une Superellipse en forme de X
' ** exponent = .3 to .9 :  Dessine un carreau avec des côtés courbés
' ** exponent = 1.0 : Dessine un carreau
' ** exponent = 2.0 : Dessine un ovale (ou un cercle si  wide = high)
' ** exponent = 3.0 : ovale plus rectangulaire
' ** exponent = 30.0 to 99.0 : C'est un rectangle
' ** numSegments : Déterminer le nombre de segments pour dessiner la SuperEllipse
' ** penSize  : Épaisseur de ligne
' ** rotAngle : Angle en degrés pour faire tourner la Superellipse
' **
' ******************************************************************************
SUB SuperEllipse(centerX, centerY, wide, high, exponent, numSegments, penSize, rotAngle)
    dim_local pi2, d2r, puissance, inc,x1,y1,x2,y2,limit,theta,cosTheta, sinTheta
    dim_local cs,sn, rotx,roty
    pi2 = 8*Atn(1) : d2r = pi2/360

    If penSize < 1 Or penSize > 20 Then penSize = 1
    2d_pen_width penSize

    If exponent < .15 Then exponent = .15
    If exponent > 99 Then exponent = 99
' Eviter la division par zéro
    If exponent = 0
        puissance = 0
    Else
        puissance = 2/exponent-1
    End_If
' Garder l'angle de rotation  entre 0 et 360°
    rotAngle = wrap_value(rotAngle)
' Conversion de degrés en radians
    inc = 360/numSegments * d2r
' Convertir rotAngle de degrés en radians
    rotAngle = d2r * rotAngle
    If rotAngle = 0
' Calculer les coordonnées du 1er point de la ligne
       x1 = wide + centerX : y1 = centerY : 2d_poly_from x1,y1
       limit = pi2 + inc
       For theta = inc To limit STEP inc
' Calculer les coordonnées x,y  du point suivant
           cosTheta = Cos(theta) : sinTheta = Sin(theta)
           x2 = wide * cosTheta * power(Abs(cosTheta),puissance) + centerX
           y2 = high * sinTheta * power(Abs(sinTheta),puissance) + centerY
' Tracer la ligne depuis la dernière position (x1,y1) jusqu'à x2,y2
           2d_poly_to x2,y2
       Next theta
    Else
' Exécutez une rotation sur la Superellipse
       cs = Cos(rotAngle) : sn = Sin(rotAngle)
       rotX = wide : x1 = cs * rotX + centerX : y1 = sn * rotX + centerY
       2d_poly_from x1,y1
       limit = pi2 + inc
       For theta = inc To limit STEP inc
           cosTheta = Cos(theta) : sinTheta = Sin(theta)
           rotX = cosTheta * wide * power(Abs(cosTheta),puissance)
           rotY = sinTheta * high * power(Abs(sinTheta),puissance)
           x2 = cs * rotX - sn * rotY + centerX
           y2 = sn * rotX + cs * rotY + centerY
           2d_poly_to x2,y2
        Next theta
    End_If
END_SUB
rem ============================================================================
SUB DrawSpiral()
    dim_local pen,wide, high, r,g,b,cr(15),cg(15),cb(15),colr,i,inc
    color 0,0,0,0 : wide = 0 : high = 0 : r = 255: g = 0: b = 0
    For i = 1 To 15
        cr(i) = r : cg(i) = 0 : cb(i) = b : r = r - 17 : b = b + 17
    Next i
    inc = 1 : colr = 1 : pen = 1
    2d_pen_color cr(colr),cg(colr),cb(colr)
    For i = 0 To 720 STEP 5
        pen = pen + .05 : wide = wide + 3.75 : high = high + 2.5
        SuperEllipse(400,300, wide, high,5,18, pen,i)
        colr = colr + inc
        If colr > 15 Then colr = 15: inc = -1
        If colr < 1 Then colr = 1: inc = 1
        2d_pen_color cr(colr),cg(colr),cb(colr)
    Next i
    show 30
END_SUB
rem ============================================================================
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Marc

Marc


Nombre de messages : 2466
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

SuperEllipse Empty
MessageSujet: Re: SuperEllipse   SuperEllipse EmptySam 19 Sep 2015 - 7:56

Bonjour -Maître / Docteur / Professeur ? -  Papydall !

Quelle imagination !
Merci !
Quant à la sortie du programme , spirale et rideau, c'est digne
d'un spectacle "hollywoodien" !

Bon weekend !

Marc.

Edit : le spectacle étant fini, je décortique ton source : merci pour tous les commentaires !
Revenir en haut Aller en bas
papydall

papydall


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

SuperEllipse Empty
MessageSujet: Re: SuperEllipse   SuperEllipse EmptySam 19 Sep 2015 - 11:37

Marc37 a écrit:
Bonjour -Maître / Docteur / Professeur ? -  Papydall !

Là, tu me fais trop d’honneur que je ne mérite pas !
Content que ça t’a plu. Laughing
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
jpcr

jpcr


Nombre de messages : 276
Age : 57
Localisation : Val de Marne (94)
Date d'inscription : 06/05/2011

SuperEllipse Empty
MessageSujet: Re: SuperEllipse   SuperEllipse EmptySam 19 Sep 2015 - 12:02

wow , juste wow , j'adore. Very Happy Very Happy Very Happy Very Happy
Revenir en haut Aller en bas
http://jeanpierre.creis.free.fr/Panoramic/Panoramic.html
papydall

papydall


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

SuperEllipse Empty
MessageSujet: Re: SuperEllipse   SuperEllipse EmptySam 19 Sep 2015 - 12:16

Je dirais même plus : wow, juste wow, jpcr adore !
Et ça me fait plaisir.
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jicehel

Jicehel


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

SuperEllipse Empty
MessageSujet: Re: SuperEllipse   SuperEllipse EmptySam 19 Sep 2015 - 12:35

Fonction très bien faites et présentation impeccable et artistique. Félicitations.
Revenir en haut Aller en bas
Minibug

Minibug


Nombre de messages : 4570
Age : 58
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

SuperEllipse Empty
MessageSujet: Re: SuperEllipse   SuperEllipse EmptySam 19 Sep 2015 - 13:55

Très joli et bien utile pour dessiner !

Mais jusqu’où ira Papydall ? La réponse au prochain post...  lol!


Dernière édition par Minibug le Sam 19 Sep 2015 - 14:46, édité 1 fois
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Marc

Marc


Nombre de messages : 2466
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

SuperEllipse Empty
MessageSujet: Re: SuperEllipse   SuperEllipse EmptySam 19 Sep 2015 - 14:38

Bonjour à tous,

Minibug a écrit:
Mais jusqu'au ira Papydall ? La réponse au prochain post...

Fort heureusement, au prochain post du Docteur ès Panoramic, nous n'aurons pas la réponse !
Il est comme la vis sans fin !

Bonne programmation à tous !
Revenir en haut Aller en bas
papydall

papydall


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

SuperEllipse Empty
MessageSujet: Re: SuperEllipse   SuperEllipse EmptySam 19 Sep 2015 - 14:53

SuperEllipse 00102
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Contenu sponsorisé





SuperEllipse Empty
MessageSujet: Re: SuperEllipse   SuperEllipse Empty

Revenir en haut Aller en bas
 
SuperEllipse
Revenir en haut 
Page 1 sur 1

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: