Dessiner un arc sans connaitre le centre du cercle

Signaler
Messages postés
7
Date d'inscription
dimanche 18 décembre 2005
Statut
Membre
Dernière intervention
19 juillet 2011
-
cs_Galain
Messages postés
1270
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
24 juillet 2013
-
Bonjour à tous,

   Je dois construire une appli dans laquelle l'usagé peut dessiner des tracés sur une feuille à partir de coordonnées entrées au clavier. Pour les lignes et rectangle ça va mais pour un arc les seules coordonnées dont je dispose sont le début et la fin de l'arc ainsi que le rayon. Les fonctions de dessins de VB6 et de l'API que je connais ont toutes besoin des coordonnées du centre du cercle.
Je sais qu'il est possible de calculer le centre à partir de deux points mais je suis pas très fort en géometrie. Quelqu'un connait-il une fonction qui ferait le travail ou la formule pour faire le calcul?

Merci!

JohnBug

5 réponses

Messages postés
1270
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
24 juillet 2013
6
Je ne suis pas très fort en géométrie mais je vais te donner une piste

Tu as 2 points P1 et P2 qui représentent le début et la fin de ton arc
Relies les points P1 et P2 : tu as un segment de droite
Depuis P1 comme centre tu traces un cercle C1 de rayon R ( ton rayon)
depuis P2 comme centre tu traces un cercle C2 de rayon R également
Les cercles C1 et C2  se coupent en un point  qui est le centre nécessaire pour tracer ton arc de cercle
Les trois segment forment un triangle isocèle de bas P1-P2

GRENIER Alain[8D]
Messages postés
1270
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
24 juillet 2013
6
Tu prends le point M qui est au milieu du segment P1-P2
tu traces une perpendiculaire au segment P1-P2 qui passes par M
ton centre que tu cherches est la pointe du triangle isocèle et la longueur du point M à la pointe du triangle est la hauteur du triangle isocèle
soit C le centre que l'on cherche
Les trois points C,M et P1 forment un triangle rectangle
Le carré de l'hypothénuse ets égale à la somme des carrés des 2 autres côtés
Soit P1-C l'hypothénuse et P1-M et M-C  les 2 autres côtés
On a    (P1-C)^2  =  (P1-M)^2   +  (M-C) ^2
donc (M-C) ^2 =  (P1-C)^2  - (P1-M)^2   :  hauteur^2 = hypothénuse ^2 - petitcoté ^2
ensuite tu fais la racine carrée pour trouver la longeur du segment hauteur M-C
tu n'as plus qu'à en déduire les coordonnées du centre que tu cherches

Fais le dessin : tu comprendras mieux

GRENIER Alain[8D]
Messages postés
630
Date d'inscription
vendredi 5 mai 2006
Statut
Membre
Dernière intervention
17 février 2007

Salut, tu as vu la fonction API arc() ?
Description ICI . pas besoin du centre dans ce cas.
Messages postés
7
Date d'inscription
dimanche 18 décembre 2005
Statut
Membre
Dernière intervention
19 juillet 2011

Bonjour Alain,


Je te remercie pour ton aide, j'étais rendu à peu près au même endroit dans mes calculs. Mon cauchemar commence quand je tente de déduire les coordonnées du centre à partir du triangle P1,M,C parce que son angle de rotation est inconnu. Si tu as d'autres suggestions elles seront très bienvenues.


Dolphin Boy,


Je sais que la fonction ''arc'' requiert les coins du rectangle mais pour les trouver il faut connaitre les coordonnées du centre. Ou connait tu une autre méthode?


Merci encore


JohnBug


 
Messages postés
1270
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
24 juillet 2013
6
tu parles de l'angle de rotation du triangle rectangle P1,M,C .
tu connais la position de la base du triangle isocéle P1-P2
la hauteur du triangle isocèle est perpendiculaire à cette base ( très important)
Comme tu connais la longueur de la hauteur ( la distance M-C) tu peux en déduire la direction  que suit cette hauteur par rapport à la base ( c'est perpendiculaire)   et donc le point Centre que tu cherches

GRENIER Alain[8D]