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.
Les Courbes de Bézier cubiques Emptypar Jack Aujourd'hui à 10:03

» Un autre pense-bête...
Les Courbes de Bézier cubiques Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Les Courbes de Bézier cubiques Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Les Courbes de Bézier cubiques Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Les Courbes de Bézier cubiques Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Les Courbes de Bézier cubiques Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Les Courbes de Bézier cubiques Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Les Courbes de Bézier cubiques Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Les Courbes de Bézier cubiques Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Les Courbes de Bézier cubiques Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Les Courbes de Bézier cubiques Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Les Courbes de Bézier cubiques Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Les Courbes de Bézier cubiques Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Les Courbes de Bézier cubiques Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Les Courbes de Bézier cubiques 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
-38%
Le deal à ne pas rater :
Ecran PC gaming 23,8″ – ACER KG241Y P3bip à 99,99€
99.99 € 159.99 €
Voir le deal

 

 Les Courbes de Bézier cubiques

Aller en bas 
3 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

Les Courbes de Bézier cubiques Empty
MessageSujet: Les Courbes de Bézier cubiques   Les Courbes de Bézier cubiques EmptyMar 1 Mar 2016 - 19:17

Code:

rem ============================================================================
rem             Les Courbes de Bézier cubiques
rem REF :  https://fr.wikipedia.org/wiki/Courbe_de_B%C3%A9zier
rem ============================================================================
rem Une courbe de Bézier cubique est définie par quatres points P0, P1, P2 et P3
rem de coordonnées (x0,y0), (x1,y1), (x2,y2) et (x3,y3)
rem P0 et P3 correspondent aux points des extrémités ou nœuds de la courbe.
rem P1 et P2 correspondent aux points de contrôle ou poignées, chacun apparié
rem avec l un des points terminaux.
rem Les points de contrôle ont l utile propriété suivante :
rem Une ligne commençant à une extrémité de la courbe et se terminant au point de
rem contrôle correspondant est tangente à la courbe au point terminal.
rem Ceci permet la jonction douce de multiples courbes de Bézier.

rem La courbe se trace en partant du point P0, en se dirigeant vers le point P1
rem et en arrivant au point P3 selon la direction P2-P3.
rem La courbe ne passe pas nécessairement  par P1 ni par P2.
rem ============================================================================

' ------------------------------------------------------------------------------
' Les courbes de Bézier sont utilisées en conception graphique
' ------------------------------------------------------------------------------
rem ============================================================================
' Exemples des courbes de Bézier
picture 10 : full_space 10 : 2d_target_is 10 : color 10,0,0,0

2d_pen_color 255,000,000 : Cubic_Bezier_Curve(120,20,20,100,200,100,320,20)    : pause 1000 : color 10,0,0,0
2d_pen_color 255,255,000 : Cubic_Bezier_Curve(300,200,200,100,400,200,350,100) : pause 1000 : color 10,0,0,0
2d_pen_color 000,255,000 : Cubic_Bezier_Curve(100,400,200,200,300,400,550,220) : pause 1000 : color 10,0,0,0
2d_pen_color 000,255,255 : Cubic_Bezier_Curve(100,350,500,50,80,50,400,250)    : pause 1000 : color 10,0,0,0
2d_pen_color 255,000,255 : Cubic_Bezier_Curve(100,400,200,200,400,220,450,350) : pause 1000 : color 10,0,0,0
2d_pen_color 255,255,255 : Cubic_Bezier_Curve(114,165,208,444,360,165,114,165) : pause 1000 : color 10,0,0,0

' Dessiner une soucoupe avec les courbes de Bézier
Draw_Saucer()
print_target_is 10 : font_size 10,16 : print_locate 100,400 : print "That's All folks !!"

end
rem ============================================================================
rem &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
rem ============================================================================
' Tracé d'une courbe de Bézier cubique
SUB Cubic_Bezier_Curve(x0,y0,x1,y1,x2,y2,x3,y3)
    dim_local np : np = 100 : ' nombre de points interpolés sur la courbe, plus ce nombre est grand, plus la courbe sera lisse
    dim_local bezier(np,2)
    dim_local i,t,xp0,xp1,xp2,xp3,yp0,yp1,yp2,yp3
    2d_poly_from x0,y0
    for i = 0 to np
        t = i/np
        xp0 = (1-t)*(1-t)*(1-t)*x0 : yp0 = (1-t)*(1-t)*(1-t)*y0
        xp1 = 3*(1-t)*(1-t)*t*x1   : yp1 = 3*(1-t)*(1-t)*t*y1
        xp2 = 3*(1-t)*t*t*x2       : yp2 = 3*(1-t)*t*t*y2
        xp3 = t*t*t*x3             : yp3 = t*t*t*y3
        bezier(i,0) = xp0 + xp1 + xp2 + xp3 : bezier(i,1) = yp0 + yp1 + yp2 + yp3
        2d_poly_to bezier(i,0),bezier(i,1)
    next i
END_SUB
rem ============================================================================
' Comme exemple :
' Dessiner une soucoupe avec les courbes de Bézier
SUB Draw_Saucer()
    dim_local p : p = 1000 : ' Pause pour visualiser les différentes courbes de Bézier
' Draw saucer bottom.
    2d_pen_color 220,100,0
    Cubic_Bezier_Curve(284,169,284,197,229,220,160,220) : pause p
    Cubic_Bezier_Curve(160,220,91,220,36,197,36,169)    : pause p
    Cubic_Bezier_Curve(36,169,36,141,91,118,160,118)    : pause p
    Cubic_Bezier_Curve(160,118,229,118,284,141,284,169) : pause p
    2d_flood 220,200,220,100,0
' Draw saucer top.
    2d_pen_color 50,190,0
    Cubic_Bezier_Curve(223,120,223,133,194,143,159,143)    : pause p
    Cubic_Bezier_Curve(159,143,124, 143, 96, 133, 96, 120) : pause p
    Cubic_Bezier_Curve(96,129,96, 108, 124, 97, 159, 97)   : pause p
    Cubic_Bezier_Curve(159,97,194, 97, 223, 108, 223, 120) : pause p
    2d_flood 140,128,50,190,0 : 2d_flood 162,108,51,190,0
END_SUB
rem ============================================================================


@Jean_Debord
Je pense qu’une commande Cubic_Bezier_Curve(x0,y0,x1,y1,x2,y2,x3,y3) dans le langage FBPano sera fort utile, d’autant plus que son codage est simple.
Qu’en penses-tu ?
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

Les Courbes de Bézier cubiques Empty
MessageSujet: Re: Les Courbes de Bézier cubiques   Les Courbes de Bézier cubiques EmptyMar 1 Mar 2016 - 20:43

Il faut savoir les mettre en oeuvre en pratique mais oui, c'est très utilisé en graphismes.
Le programme est nickel comme d'hab sinon  Wink


Dernière édition par Jicehel le Mar 1 Mar 2016 - 21:51, édité 1 fois
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

Les Courbes de Bézier cubiques Empty
MessageSujet: Re: Les Courbes de Bézier cubiques   Les Courbes de Bézier cubiques EmptyMar 1 Mar 2016 - 21:44

Merci pour le retour Jicehel.
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
jean_debord

jean_debord


Nombre de messages : 1266
Age : 70
Localisation : Limoges
Date d'inscription : 21/09/2008

Les Courbes de Bézier cubiques Empty
MessageSujet: Re: Les Courbes de Bézier cubiques   Les Courbes de Bézier cubiques EmptyMer 2 Mar 2016 - 9:13

papydall a écrit:

@Jean_Debord
Je pense qu’une commande Cubic_Bezier_Curve(x0,y0,x1,y1,x2,y2,x3,y3) dans le langage FBPano sera fort utile, d’autant plus que son codage est simple.
Qu’en penses-tu ?

Oui ce serait très bien, soit dans le langage lui-même, soit dans une bibliothèque externe.

J'ai déjà adapté tes routines de polygones et celles de Klaus (voir exemples\lib\polygones.bas).
Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
jean_debord

jean_debord


Nombre de messages : 1266
Age : 70
Localisation : Limoges
Date d'inscription : 21/09/2008

Les Courbes de Bézier cubiques Empty
MessageSujet: Re: Les Courbes de Bézier cubiques   Les Courbes de Bézier cubiques EmptyJeu 3 Mar 2016 - 10:44

Voici donc une procédure en FBPano, pour intégration dans la bibliothèque polygones (qui va devoir changer de nom...)  
 
Code:
  
   sub Bezier_Cube (x0, y0, x1, y1, x2, y2, x3, y3, n%, x(), y())
        
        dim i%, t, t2, t3, u, u2, u3, a, b

        for i = 0 to n
            t = i / n
            t2 = t * t
            t3 = t2 * t
            u = 1 - t
            u2 = u * u
            u3 = u2 * u
            a = 3 * u2 * t
            b = 3 * u * t2
            x(i) = u3 * x0 + a * x1 + b * x2 + t3 * x3
            y(i) = u3 * y0 + a * y1 + b * y2 + t3 * y3
        next i
    end_sub
   

Différences par rapport à la version PANORAMIC :

- la procédure ne trace rien ; le programme appelant reçoit les coordonnées des points dans les tableaux x() et y() ; ensuite il trace ces points comme il veut Smile

- on utilise des variables intermédiaires pour réduire le nombre d'opérations à effectuer
Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
papydall

papydall


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

Les Courbes de Bézier cubiques Empty
MessageSujet: Re: Les Courbes de Bézier cubiques   Les Courbes de Bézier cubiques EmptyJeu 3 Mar 2016 - 13:17

Salut Jean_Debord.
Merci pour cette sub.
Code:

for i = 0 to n
     t = i / n
           ….
C’est
Code:

for i = 0 to n%
    t = i / n%
          ….
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
jean_debord

jean_debord


Nombre de messages : 1266
Age : 70
Localisation : Limoges
Date d'inscription : 21/09/2008

Les Courbes de Bézier cubiques Empty
MessageSujet: Re: Les Courbes de Bézier cubiques   Les Courbes de Bézier cubiques EmptyVen 4 Mar 2016 - 8:49

Dans FBPano, les suffixes (%, $ etc.) ne sont indispensables que dans les déclarations de variables ou dans la définition des procédures. Ensuite on peut les omettre. Si on les met, le traducteur les supprimera.
Donc je préfère ne pas les mettre, et écrire "for i" p.ex. plutôt que "for i% ..."
Mais c'est une affaire de goût...
Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
papydall

papydall


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

Les Courbes de Bézier cubiques Empty
MessageSujet: Re: Les Courbes de Bézier cubiques   Les Courbes de Bézier cubiques EmptyVen 4 Mar 2016 - 14:50

Thank you!
J'ai compris.
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Contenu sponsorisé





Les Courbes de Bézier cubiques Empty
MessageSujet: Re: Les Courbes de Bézier cubiques   Les Courbes de Bézier cubiques Empty

Revenir en haut Aller en bas
 
Les Courbes de Bézier cubiques
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
»  Les Courbes de Bézier cubiques
» Un TRISKELL en courbes !
» Courbes de Bézier cubiques
» numérique : Courbe de Bézier
» Animation de courbe de Bézier cubique

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: