IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Mathématiques Discussion :

Tracer une droite avec un algo de bezier


Sujet :

Mathématiques

  1. #1
    Membre régulier
    Avatar de DjPoke
    Homme Profil pro
    Invalide temporaire
    Inscrit en
    Août 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Invalide temporaire

    Informations forums :
    Inscription : Août 2005
    Messages : 93
    Points : 77
    Points
    77
    Billets dans le blog
    1
    Par défaut Tracer une droite avec un algo de bezier
    Bonjour

    J'ai une question qui peut paraître étrange mais qui est importante par rapport à un programme que je développe :
    Comment tracer une droite à partir d'un algorithme de courbe de bezier ?
    (Quelles coordonnées rentrer dans les points de contrôle)

    J'ai trouvé cette fonction de bezier là. (sur laquelle j'envoie les points de départ, d'arrivée, ainsi que les coordonnées des deux points de contrôle, et le temps, compris entre 0 et 1).

    Voici au cas où la fonction, en blitzmax :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Function bezier(ex1,ey1,ex2,ey2,cx1,cy1,cx2,cy2,t#)
    bx1#=ex1+cx1
    by1#=ey1+cy1
    cx#=ex2+cx2
    cy#=ey2+cy2
     
    't# compris entre 0 et 1...
       a#=t#
       b2#=1-t#
       px=ex1*(b2#^3)+3*bx1#*(b2#^2)*a#+(3*cx#)*b2#*(a#^2)+ex2*(a#^3)
       py=ey1*(b2#^3)+3*by1#*(b2#^2)*a#+(3*cy#)*b2#*(a#^2)+ey2*(a#^3)
     
       newpx=px
       newpy=py
     
    EndFunction
    Merci d'avance

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    468
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 468
    Points : 689
    Points
    689
    Par défaut
    C'est question piège c'est ça !?

    Autrement si ta courbe est définie par les points A,B,C et D

    Pour avoir une droite, il suffit simplement d'aligner les points.

    Donc en connaissant A et D il faut :

    B = (2*A + 1*B) / 3
    C = (1*A + 2*B) / 3


    Dans ton cas, toi, tu définis la courbe avec 2 points et 2 vecteurs tel que

    E0 = A
    E1 = D
    C0 = B - A
    C1 = C - D

    D'où au final il suffit d'avoir les 2 vecteurs de contrôle égales à :

    C0 = (E1 - E0) / 3
    C1 = (E0 - E1) / 3

  3. #3
    Membre régulier
    Avatar de DjPoke
    Homme Profil pro
    Invalide temporaire
    Inscrit en
    Août 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Invalide temporaire

    Informations forums :
    Inscription : Août 2005
    Messages : 93
    Points : 77
    Points
    77
    Billets dans le blog
    1
    Par défaut
    Impeccable, merci, ça marche maintenant.
    En fait, je suis un peu nul en maths...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Tracer une droite avec Delphi
    Par matika123 dans le forum Débuter
    Réponses: 17
    Dernier message: 28/09/2008, 16h52
  2. comment tracer une courbe avec gtk
    Par killer_instinct dans le forum GTK+ avec C & C++
    Réponses: 5
    Dernier message: 01/10/2007, 22h53
  3. probleme pour tracer une ligne avec OleExcel
    Par blondelle dans le forum C++Builder
    Réponses: 6
    Dernier message: 18/08/2006, 19h10
  4. Tracer une courbe avec 2 tableau de points
    Par babarpapa dans le forum 2D
    Réponses: 3
    Dernier message: 19/04/2006, 15h24
  5. [FP]Tracer Une ligne avec Dev-pascal
    Par yffick dans le forum Turbo Pascal
    Réponses: 9
    Dernier message: 17/12/2003, 16h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo