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

Moteurs 3D Discussion :

Projection courbe de bezier 3D


Sujet :

Moteurs 3D

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Gaulouis
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2015
    Messages
    252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2015
    Messages : 252
    Points : 476
    Points
    476
    Par défaut Projection courbe de bezier 3D
    Bonjour,

    Je souhaite projeter une courbe de Bezier de 3 dimension (x,y,z)

    J'ai essayé de projeter les points de contrôles pour dessiner ensuite la courbe en 2D mais j’obtiens des distorsion.

    Savez vous comment déterminer les points de contrôles de la projection d'une courbe de Bezier en 3D ?

    J'ai fais une petite vidéo pour illustrer la "distorsion" de la courbe verte


    Je cherche donc à déterminer les point de contrôles qui me permettront d'obtenir la courbe rouge.

    D'avance, merci de votre aide

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 897
    Points : 219 633
    Points
    219 633
    Billets dans le blog
    125
    Par défaut
    Bonjour,

    Il n'y aucune raison que la formule ne fonctionne pas, sachant que ce n'est qu'une interpolation (non linéaire certes). Êtes vous sur que vos quatres points (points de départ/fin + point de contrôle) n'ont pas du tout été décalé à cause de la transformation ?

  3. #3
    Membre confirmé Avatar de Gaulouis
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2015
    Messages
    252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2015
    Messages : 252
    Points : 476
    Points
    476
    Par défaut
    Je suis sur que mes points de contrôles sont juste par ce que ce sont les même points.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    	context.strokeStyle = "#000000";// triangle
    	context.beginPath();
    	context.moveTo(vec1.data[0], vec1.data[1]);
    	context.lineTo(vec2.data[0], vec2.data[1]);
    	context.lineTo(vec3.data[0], vec3.data[1]);
    	context.stroke();
     
    	context.strokeStyle = "#00FF00";// courbe
    	context.beginPath();
    	context.moveTo(vec1.data[0], vec1.data[1]);
    	context.quadraticCurveTo(vec2.data[0], vec2.data[1], vec3.data[0], vec3.data[1]);
    	context.stroke();
    Je suis également sûr que la courbe rouge (segmentation) est juste car sont sommet est au centre du triangle.

    PS: J'vais faire un essai avec une bezier cubic au lieu d'un quadratic

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 897
    Points : 219 633
    Points
    219 633
    Billets dans le blog
    125
    Par défaut
    Sachant que le triangle n'est plus équilatéral, cela me semble assez logique comme résultat. Enfin, j'ai vraiment du mal à voir s'il y a vraiment un soucis ou non. Pourquoi le Bezier devrait être pareil que la courbe rouge ?

  5. #5
    Membre confirmé Avatar de Gaulouis
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2015
    Messages
    252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2015
    Messages : 252
    Points : 476
    Points
    476
    Par défaut
    Tout d'abord, merci LittleWhite pour l’intérêt que tu porte a mon problème

    Je voudrais afficher une courbe (quadratique) de Bezier en 3D avec une perspective.
    • 1er technique segmenter la courbe en plusieurs lignes (polyline) : c'est ma courbe rouge
    • 2eme technique projeter les points de contrôles : c'est ma courbe verte.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Pourquoi le Bezier devrait être pareil que la courbe rouge ?
    C'est une hypothèse que j'ai posé (d'après les sources de Five3D : function curveToSpace()). Après avoir essayé je me rend compte que l'hypothèse est fausse même approximativement (la distorsion est encore plus flagrante quand que je fais pivoter la courbe de haut en bas)

    Je cherche une méthode pour déterminer la courbe de Bezier Bxy'(t), la projeté de la courbe de Bezier Bxyz(t) en 3D sur un plan 2D, définie par des point de contrôles.
    En plus, je dois conserver la continuité(la tangente aux points de contrôle) car le but est d'afficher des polices de caractère en 3D.

    Je ne trouve rien sur internet à ce sujet. Tout le monde parle de courbe Nurbs en 3D (Je dois faire fausse route, ou alors je suis pionnier). Mon but est d'afficher du texte en 3D dans un Canvas HTML(je dois utiliser des courbes cubic et quadrtic). Pour ça j'ai décider de pré-calculer les chemins vectoriel des police selon plusieurs angle/perspective et ainsi avoir une table de font en perspective (pour des raison de performance, mais j'essayerai quand même les calcule a la volé).

    Bref, je cherche une méthode pour déterminer les points de contrôles

    Cordialement,

    Edit:
    Je vais essayer de convertir ma courbe quadratique de Bezier 3D en courbe cubique de Bezier 2D, le problème c'est que je n'ai pas la conviction que le point à t=0.5 soit aussi a t'=0.5 sur ma nouvelle courbe on verra bien )
    Nom : projection_bezier_3d.png
Affichages : 750
Taille : 23,7 Ko

  6. #6
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 897
    Points : 219 633
    Points
    219 633
    Billets dans le blog
    125
    Par défaut
    Comment est réalisée la projection ?
    Vous n'avez pas les points de contrôle de votre courbe ?

    J'avoue avoir du mal à vous suivre.

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

Discussions similaires

  1. Recuperer coordonnees courbe de Bezier
    Par kitsune dans le forum OpenGL
    Réponses: 7
    Dernier message: 16/10/2007, 07h11
  2. Fermer une courbe de Bezier
    Par cjacquel dans le forum MFC
    Réponses: 2
    Dernier message: 15/05/2007, 12h21
  3. courbe de bezier
    Par widi70 dans le forum C++
    Réponses: 12
    Dernier message: 17/03/2007, 12h52
  4. [vecteurs] dessiner les courbes de Bezier
    Par luta dans le forum Flash
    Réponses: 4
    Dernier message: 03/07/2006, 09h58
  5. Courbes de Beziers
    Par venomelektro dans le forum OpenGL
    Réponses: 10
    Dernier message: 23/12/2004, 00h29

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