Géometrie en 2D et 3D

Discussions générales concernant les mathématiques et n'entrant pas dans les catégories suivantes.
[participation réservée aux utilisateurs inscrits]
Règles du forum
Merci de soigner la rédaction de vos messages et de consulter ce sujet avant de poster. Pensez également à utiliser la fonction recherche du forum.
steeves5

Géometrie en 2D et 3D

Message non lu par steeves5 »

Salut à tous

Je travail sur un projet et je recherche les équations pour tracer un arc de cercle en 2D puis en 3D. Je dois tracer un arc de cercle en passant par deux points dont on connait le coordonnées.

Merci pour vos réponses
rebouxo
Modérateur honoraire
Modérateur honoraire
Messages : 6962
Inscription : mercredi 15 février 2006, 13:18
Localisation : le havre
Contact :

Message non lu par rebouxo »

tu connais le centre de ton cercle ? le rayon ?
Deux points me semble insuffisant pour tracer un unique cercle.
L'équation du cercle dans le plan est :
$(x-a)^2 + (y-b)^2 = R^2$

$(a\,;\,b)$ coordonées du centre du cercle, $R$ le rayon du cercle.
Si maintenant tu dois tracer l'arc entre $M(x_M\,;\,y_M)$ et $N(x_N\,;\,y_N)$, tu fais varier $x$ entre $x_M$ et $x_N$, attention au sens de parcours et donc à la position de $M$ par rapport à $N$. Cela doit donner beaucoup de cas différent.

Mais je ne suis pas sur que la méthode utilisant les équations soit la plus adaptée. D'abord cela devient rapidement pénible à implémenter, et tu as des problèmes de pixelisation.

Peut-être est-ce plus rapide d'implémenter les courbes (resp. surfaces) de Bézier ou les $\beta$-splines ?

Pour de plus amples informations :
Voir ici
Tryphon
Modérateur honoraire
Modérateur honoraire
Messages : 1839
Inscription : mercredi 01 juin 2005, 18:39
Localisation : Un peu plus à l'Ouest

Message non lu par Tryphon »

L'algorithme le plus couramment employé pour tracer des cercles est l'Algorithme de Bessenham.
rebouxo
Modérateur honoraire
Modérateur honoraire
Messages : 6962
Inscription : mercredi 15 février 2006, 13:18
Localisation : le havre
Contact :

Message non lu par rebouxo »

Je ne connaissais pas ce monsieur (ou cette dame), mais je l'ai trouvé avec cette orthographe :
Bresenham.

Google donnera plus de détails.

C'est beau l'informatique :bangin:
steeves5

Message non lu par steeves5 »

Salut à tous
Merci pour vos réponses je vais voir chacun des cas que vous m'avez indiqué.
Peut-être est-ce plus rapide d'implémenter les courbes (resp. surfaces) de Bézier ou les \beta-splines ?
C'est vrai que je ne l'ai pas précisé mais j'utilise déjà une B-spline. Mais le problème est que le rayon de courbure n'est pas constant (pour mon projet, qui est en faite une simulation de trajectoire pour un drone, je dois pouvoir effectuer des virages à angles constant). Du coup, je me sert de la B-spline comme référence et je m'aide de cette derniere pour avoir des courbes à rayon constant.

Merci encore à tous
steeves5

Message non lu par steeves5 »

tu connais le centre de ton cercle ? le rayon ?
En effet, je connais le centre ainsi que le rayon
Tryphon
Modérateur honoraire
Modérateur honoraire
Messages : 1839
Inscription : mercredi 01 juin 2005, 18:39
Localisation : Un peu plus à l'Ouest

Message non lu par Tryphon »

rebouxo a écrit :Je ne connaissais pas ce monsieur (ou cette dame), mais je l'ai trouvé avec cette orthographe :
Bresenham.

Google donnera plus de détails.

C'est beau l'informatique :bangin:
Oui bon Bresenham, Bessenham, tout ça c'est du prareil au memme. :oops:
steeves5

Message non lu par steeves5 »

Salut

Je suis arriver avec succes a tracer des arc de cercle. Mais j'ai un autre probleme il me trace des arcs de cercle compris entre 0 et pi (sens inverse des aiguilles d'une montre) parcontre entre pi et 2 pi mais arc de cercle sont tracés mais tjr dans la zone entre 0 et pi
j'utilise l'equation de rebouxo
(x-a)^2 + (y-b)^2 = r^2
Quelqu'un aurait une idée pour resoudre mon probleme

Merci encore
rebouxo
Modérateur honoraire
Modérateur honoraire
Messages : 6962
Inscription : mercredi 15 février 2006, 13:18
Localisation : le havre
Contact :

Message non lu par rebouxo »

problème de signe :
quand tu es dans le demi plan supérieur $ y = b+\sqrt{R^2-(x-a)^2}$ et dans le demi plan inférieur $ y = b-\sqrt{R^2-(x-a)^2}$, non ?



Salut
steeves5

Message non lu par steeves5 »

c'était bien ça il m'a tracé un arc dans l'autre zone. ça marche il y a cependant quelque modif que je dois apporter.

Merci pour ton aide rebouxo

et pour le passage en 3D ça se passe comment?

Merci encore
rebouxo
Modérateur honoraire
Modérateur honoraire
Messages : 6962
Inscription : mercredi 15 février 2006, 13:18
Localisation : le havre
Contact :

Message non lu par rebouxo »

Il te faut travailler dans un plan.
Soit définis par trois points, soit un point (le centre du cercle) et un vecteur normal au plan.
Tu te remet dans le cas de la 2D.
steeves5

Message non lu par steeves5 »

ok
J'ai un probleme car lorsque je trace ma trajectoire j'ai parfois mon point initial qui se trouve dans la partie inférieur du cercle trigo et le deuxieme point dans ma partie sup et du coup il me trace qu'une partie de mon arc de cercle selon la condition que je lui mentionne.
Comment faire pour parer à se probleme ?

Merci
Tryphon
Modérateur honoraire
Modérateur honoraire
Messages : 1839
Inscription : mercredi 01 juin 2005, 18:39
Localisation : Un peu plus à l'Ouest

Message non lu par Tryphon »

Travailler en paramétrique, déjà, ça te simplifiera le travail :

$x = x_0 + r \cos(\theta) \\
y = y_0 + r \sin(\theta)$

Il te suffit de déterminer entre quels $\theta_0$ et $\theta_1$ ta variable theta doit varier.

Dans l'espace, c'est un peu plus embêtant. Je suppose qu'il doit falloir avoir deux systèmes de coordonnées, l'un $R_1$ relatif au plan dans lequel tu traces ton cercle, l'autre relatif au repère $R_2$ de l'espace que tu as choisi.
Tu calcules les coordonnées dans $R_1$ d'un point du cercle
Tu utilises tes formules de changement de base pour avoir les coordonnées dans $R_2$
Tu traces le point $M(x;y;z)$ (il te faudra donc une procédure qui à partir des coordonnées d'un point dans l'espace - dans $R_2$ - calcule les coordonnées de l'image par la perspective. C'est implémenté dans n'importe quel moteur 3D).

[Note : comment j'aligne deux équations ? l'environnement align n'a pas l'air de fonctionner]
rebouxo
Modérateur honoraire
Modérateur honoraire
Messages : 6962
Inscription : mercredi 15 février 2006, 13:18
Localisation : le havre
Contact :

Message non lu par rebouxo »

Bon sang mais c'est bien sur ! Le paramétrique c'est quand même plus sympa.
Suis-je bête :sick:
steeves5

Message non lu par steeves5 »

Salut
Travailler en paramétrique, déjà, ça te simplifiera le travail :

x = x_0 + r \cos(\theta) \\ y = y_0 + r \sin(\theta)
Je viens de tester cette équation mais elle me trace des cercles. Comment faire pour n'avoir que des arcs de cercle.
Y a t-il possilité de modifier cette formule afin d'avoir uniquement des arcs de cercle?

Merci
nirosis
Modérateur honoraire
Modérateur honoraire
Messages : 1803
Inscription : samedi 28 mai 2005, 14:48
Localisation : Orsay, France

Message non lu par nirosis »

Pour des arcs de cercles, prends theta sur un intervalle plus petit de $[0,2 \pi]$.
Sinon tu parcours tout le cercle ! Essaie $[0,\pi /2]$ et tu auras un quart de cercle.
steeves5

Message non lu par steeves5 »

En effet, ça marche mieu en plus j'avais une erreur de conversion radian degree. la il trace des arc de cercle uniquement entre O et la valeur de mon angle
Comment faire pour qu'il me les trace selon le placement de mais points en utilisant la formule de Tryphon

Code : Tout sélectionner

x= x0+r*cos (theta) et y0+ r*sin (theta)
Merci de votre aide

[edit nirosis] pense à utiliser la fonction éditer quand tu veux corriger une faute
rebouxo
Modérateur honoraire
Modérateur honoraire
Messages : 6962
Inscription : mercredi 15 février 2006, 13:18
Localisation : le havre
Contact :

Message non lu par rebouxo »

Euh j'ai du mal à comprendre. Probablement :
Comment faire pour qu'il me les trace selon le placement de mais points (sic) en utilisant la formule de Tryphon
Et pourtant je suis une quiche en orthographe et je lis des aneries tous les jours (Prof en lycée techno), mais là c'est un peu ésotérique.

A quoi fais-tu référence ?

Tu veux bien reformuler un peu plus clairement. Merci.
steeves5

Message non lu par steeves5 »

Oula c vrai

Desolé pour les fautes
Je m'explique en fait avec les formules x=x0+r*cos (theta) et y=y0+r*sin (theta).
je fais varier theta entre 0 et la valeur de mon angle (en radians). Et quand je lance mon programme il me trace mon arc de cerlce entre 0 et la valeur de mon angle ce qui est normal. Mais avec mon logiciel je place des points aléatoirement dans mon plan et je calcul les angles entre chaqu'un des points ensuite je veux tracer des arcs de cerlce entre chaques points.
Mais je ne sais comment faire ?
rebouxo
Modérateur honoraire
Modérateur honoraire
Messages : 6962
Inscription : mercredi 15 février 2006, 13:18
Localisation : le havre
Contact :

Message non lu par rebouxo »

J'aurais tendance à calculer les arguments des points (donc l'angle orienté par rapport à $[Ox)$). Soit $A$ et $B$ deux points sur ton cercle, $\theta_1$ et $\theta_2$ les arguments, tu fais varier $\theta$ entre $\theta_1$ et $\theta_2$.
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message