Centre Cercle tangeant à 2 droite

Résolu
Signaler
Messages postés
8
Date d'inscription
jeudi 23 août 2001
Statut
Membre
Dernière intervention
14 novembre 2005
-
Messages postés
221
Date d'inscription
vendredi 30 novembre 2001
Statut
Membre
Dernière intervention
13 février 2010
-
1) J'essaie de trouver les coordonnées du centre d'un cercle tangeant à 2 droites.
Je connais 3 points apartenant sur les deux droites dont un est commun. Je connais le rayon.

2) Une fois le centre du cercle trouvé, je souhaite trouver les coordonnées des points sur celui avec un espacement de 1mm (par example)

Merci pour toutes pistes ou code

Remiguel

10 réponses

Messages postés
221
Date d'inscription
vendredi 30 novembre 2001
Statut
Membre
Dernière intervention
13 février 2010
4
toutes les variables que j'ai déclarées sont des double (ou single). par contre, mathématiquement, elles forment des vecteurs :

d = (dx,dy)

u = (ux,uy), ...

Ici, u et v sont des vecteurs qui partent de C vers A et B respectivement.

d est la somme de u et v, c'est à dire que c'est le vecteur directeur de ta bissectrice CO.

L est la distance à parcourir de C à O avec le vecteur d.

enfin, implicitement, j'utilise aussi des sinus et des cosinus par la
formule du produit scalaire : u*v = ||u|| * ||v|| *
cos(angle_entre_u_v) et que sin^2+cos^2=1 et aussi cos(2a) = 2
cos^2(a)-1.

en fait, je viens de vérifier, tout se transpose en 3D sans problème :



ux Ax - Cx: uy Ay - Cy: uz = Az - Cz

vx Bx - Cx: vy By - Cy: vz = Az - Cz

u = Sqrt(ux*ux+uy*uy+uz*uz)

v = Sqrt(vx*vx+vy*vy+vz*vz)

ux ux / u: uy uy / u: uz = uz / u

vx vx / v: vy vy / v: vz = vz / v

dx = ux + vx

dy = uy + vy

dz = uz + vz

L = R * Sqrt(2) / Sqrt((1- ux*vx - uy*vy-uz*vz)* (dx*dx + dy*dy + dz*dz))

Ox = Cx + dx * L

Oy = Cy + dy * L

Oz = Cz + dz * L



et voilà le travail!



quand on connaît les maths, c'est tellement plus mieux!
3
Messages postés
8
Date d'inscription
jeudi 23 août 2001
Statut
Membre
Dernière intervention
14 novembre 2005

Mince mon lien ne marche pas

Je recommence en essayant d'être plus clair (Voir schéma à la direction plus bas).

1) J'essaie de trouver les coordonnées du centre d'un cercle tangent à 2 droites (AC et BC). Je connais les coordonnés de ces deux droites (A,B et C) dont un est commun (C). Je connais le rayon du cercle.

Schéma
http://personal.telefonica.terra.es/web/bluemarmot/Image/Poi_image/schema.png

2) Une fois le centre du cercle trouvé, je souhaite trouver (dessiner) les coordonnées de point situer sur ce cercle (Points tout les n mm).



Merci pour toutes pistes ou code


Remiguel
0
Messages postés
8
Date d'inscription
jeudi 23 août 2001
Statut
Membre
Dernière intervention
14 novembre 2005

Décidément je n'arrive pas à envoyer un message propre. Je recommence



Je recommence en
essayant d'être plus clair (Voir schéma à la direction plus bas).



1)
J'essaie de trouver les coordonnées du centre d'un cercle (rayon) tangent à 2
droites (AC et BC). Je connais les coordonnés de ces deux droites (A,B
et C) dont un est commun (C). Je connais aussi le rayon du cercle.



Schéma







2)
Une fois le centre du cercle trouvé, je souhaite trouver (dessiner) les
coordonnées de point situer sur ce cercle (Points tout les n mm).



Merci
pour toutes pistes ou code



Remiguel
0
Messages postés
221
Date d'inscription
vendredi 30 novembre 2001
Statut
Membre
Dernière intervention
13 février 2010
4
je vais répondre à ta première question (trouver le centre O du cercle
de rayon R), dans le cas 2D, je pense que ça t'aiguilleras (je pense
d'ailleurs que c'est de la 2D, pas de la 3D dont tu as besoin). Une
fois que tu as le centre, c'est facile de mettre tes points...

alors voilà:



ux Ax - Cx: uy Ay - Cy

vx Bx - Cx: vy By - Cy

u = Sqrt(ux*ux+uy*uy)

v = Sqrt(vx*vx+vy*vy)

ux ux / u: uy uy / u

vx vx / v: vy vy / v

dx ux + vx: dy uy + vy;

L = R * Sqrt(2) / Sqrt((1- ux*vx - uy*vy)* (dx*dx + dy*dy))

Ox = Cx + dx * L

Oy = Cy + dy * L



voilà, j'ai fait ça en vitesse, mais ça devrait être juste!
0
Messages postés
221
Date d'inscription
vendredi 30 novembre 2001
Statut
Membre
Dernière intervention
13 février 2010
4
je vais répondre à ta première question (trouver le centre O du cercle
de rayon R), dans le cas 2D, je pense que ça t'aiguilleras (je pense
d'ailleurs que c'est de la 2D, pas de la 3D dont tu as besoin). Une
fois que tu as le centre, c'est facile de mettre tes points...

alors voilà:



ux Ax - Cx: uy Ay - Cy

vx Bx - Cx: vy By - Cy

u = Sqrt(ux*ux+uy*uy)

v = Sqrt(vx*vx+vy*vy)

ux ux / u: uy uy / u

vx vx / v: vy vy / v

dx ux + vx: dy uy + vy;

L = R * Sqrt(2) / Sqrt((1- ux*vx - uy*vy)* (dx*dx + dy*dy))

Ox = Cx + dx * L

Oy = Cy + dy * L



voilà, j'ai fait ça en vitesse, mais ça devrait être juste!
0
Messages postés
8
Date d'inscription
jeudi 23 août 2001
Statut
Membre
Dernière intervention
14 novembre 2005

Merci Vb Lover



Peux tu me preciser ce que d et L sont ? J'ai du mal à tout saisir.

Pour declarer ux et vx en Visual, quel est la bonne methode ? ce sont bien des vecteurs ?

Pour la question du 2D ou le 3D, c'est juste le cercle est dans un plan
formé para les 3 points. Donc le probleme peut etre resolu en 2D. En 3D
par contre je dois trouver dans quel plan le cercle se trouve et là sa
ce complique.







Remiguel
0
Messages postés
8
Date d'inscription
jeudi 23 août 2001
Statut
Membre
Dernière intervention
14 novembre 2005

J'ai fait un essai avec des valeurs numeriques, meme si je ne comprends
pas tout, cela marche. Je devrais seulement penser à travailler dans
les plan formé par les 3 points A, B et C.



J'ai essayé de resoudre le probleme par une autre voie :



Beta = angle formé par la bisectrice des deux segment AC, Bc et l'axe des X

A, B et C points sur les deux lignes tangentes

O centre du cercle

L = distance entre O et C sur la bisectrice

d1x = L projeté dans X

d1y = L projeté dans Y



Beta = ArcTan((By-Ay)/(Bx-Ax))

L = Sqr (2*R^2)

d1x = L*sinBeta

d1y = L*cosBeta

Ox = Cx + d1x

Oy = Cy + d1y





Je trouve le meme resultat. Là toujours en 2D avec le meme inconvenient que ci-dessus
0
Messages postés
8
Date d'inscription
jeudi 23 août 2001
Statut
Membre
Dernière intervention
14 novembre 2005

Decidement mon message est coupé. Comment peut on editer ses messages ?



Je trouve le meme resultat. Là toujours en 2D avec le meme inconvenient que ci-dessus



Q'en penses tu Vb Lover ? ou qu'en pensez vous ?





Remiguel
0
Messages postés
8
Date d'inscription
jeudi 23 août 2001
Statut
Membre
Dernière intervention
14 novembre 2005

Chapeau Vb Lover, tu as résolu mon problème. On m'avais déjà soufflé que je devais passer par une opération vectorielle, mais je n'y serais jamais arrivé seul et aussi rapidement.

Encore merci. Je m'attaque au point 2) qui est plus facile.


Remiguel
0
Messages postés
221
Date d'inscription
vendredi 30 novembre 2001
Statut
Membre
Dernière intervention
13 février 2010
4
je viens de jeter un coup d'oeil au point 2), et je ne suis pas si sûr qu'il soit plus facile... avant, il n'y avait finalement que des produits scalaires (qui sont invariants par rotation, bien entendu), donc passer du 2D au 3D était trivial. Pour le cercle, tu es obligé de réfléchir un peu plus il me semble. Peut-être que je vais regarder, mais sinon bon courage!
0