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

 Java Discussion :

courbe de Bézier en Java


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 151
    Par défaut courbe de Bézier en Java
    Bonjour à tous,

    j'essaie d'écrire un petit programme en java qui permet de dessiner des courbes de Béziers à partir des points donnés.
    d'après mes recherche j'ai compris que :
    une courbe de Béziers peut être écrite sous la forme suivante

    x(t)=∑_(k=0)^n▒〖xi*∁(n¦k) t^k 〖(1-t)〗^(n-k ) 〗
    y(t)=∑_(k=0)^n▒〖yi*∁(n¦k) t^k 〖(1-t)〗^(n-k ) 〗

    avec t appartient [0..1]
    sachant que j'ai uniquement les coordonnées des points et je connais leur ordre càd je connais qui est le point de départ et celui d'arrivé.

    1) est ce que ces données me permettent elles de construire ma courbe de Béziers

    2) pouvez vous m'expliquez la démarche à suivre pour dessiner en java une courbe de Béziers

    3) est-il obligatoire de définir une classe polynôme.


    merci

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par azertyuio Voir le message
    sachant que j'ai uniquement les coordonnées des points et je connais leur ordre càd je connais qui est le point de départ et celui d'arrivé.

    1) est ce que ces données me permettent elles de construire ma courbe de Béziers
    Non, il faut aussi au moins un point de contrôle. Une courbe de bézier sans point de contrôle, on appelle ça un segment. C'est assez facile à faire .

    Citation Envoyé par azertyuio Voir le message
    2) pouvez vous m'expliquez la démarche à suivre pour dessiner en java une courbe de Béziers

    3) est-il obligatoire de définir une classe polynôme.
    Franchement, il est plus simple de se reposer sur CubicCurve2D.Double et QuadCurve2D.Double
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 151
    Par défaut
    Non, il faut aussi au moins un point de contrôle. Une courbe de bézier sans point de contrôle, on appelle ça un segment. C'est assez facile à faire .
    evidement il me faut des points de contrôle quand j'ai mentionné les points j'ai voulu dire les points de controle
    et quant j'ai dit leurs ordres c'est pour indiquer que je connais le point de départ et d'arrivé
    car on sait que les bézier passe par le 1er et le dernier point et ne passe pas obligatoirement par les autres points


    Voilà un petit essai mais ça marche pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Vector points = new Vector ();
    	points.addElement (new Point (100,0,0));
    	points.addElement(new Point (300,0,0));
    	points.addElement(new Point (500,0,0));
    	points.addElement(new Point (100,350,0));
    	points.addElement(new Point (100,200,0));
    	float xt=0, yt=0;
    	for (int i=0; i<5; i++)
    	for(int t=0; t<=1; t+=0.1){
    		Point M = (Point)bbb.elementAt(i);
    		xt+= combinaison(i,4) * (float)Math.pow(t,i)*(float)Math.pow(1-t, 4-i)* M.x;
    		yt+= combinaison(i,4) * (float)Math.pow(t,i)*(float)Math.pow(1-t, 4-i)* M.y;
    		dessinerPoint(new Point (xt, yt, 0));
    	}

  4. #4
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 901
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 901
    Billets dans le blog
    54
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Path2D path = new Path2D.Double();
    path.moveTo(p1.x, p1.y);
    path.curveTo(pc1.x, pc1.y, pc2.x, pc2.y, p2.x, p2.y);
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  5. #5
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 151
    Par défaut
    Citation Envoyé par bouye Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Path2D path = new Path2D.Double();
    path.moveTo(p1.x, p1.y);
    path.curveTo(pc1.x, pc1.y, pc2.x, pc2.y, p2.x, p2.y);
    peux tu m'expliquer un peu le code

    et c'est quoi le path ?

    merci

  6. #6
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 901
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 901
    Billets dans le blog
    54
    Par défaut
    java.awt.geom.Path2D
    java.awt.geom.Path2D.Float
    java.awt.geom.Path2D.Double
    java.awt.geom.GeneralPath


    Les classes qui permettent de dessiner des chemins, c'est à dire à peu près n'importe quelle forme.

    1) on crée un chemin vide.
    2) on déplace le pointeur (sans dessiner de trait) sur le premier point p1 du spline.
    3) on crée un spline de Bézier entre p1 et p2 avec les points de contrôle pc1 et pc2.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

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

Discussions similaires

  1. Courbe de Bézier
    Par acacia dans le forum Mathématiques
    Réponses: 11
    Dernier message: 31/03/2010, 17h59
  2. Position sur une Courbe de Bézier
    Par Kurisu dans le forum Mathématiques
    Réponses: 2
    Dernier message: 29/06/2007, 07h49
  3. Courbes et Histogrammes en Java
    Par snetechen dans le forum 2D
    Réponses: 6
    Dernier message: 04/07/2006, 14h31
  4. recherche doc sur les courbe de bézier
    Par amaury pouly dans le forum OpenGL
    Réponses: 4
    Dernier message: 29/04/2003, 22h41

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