Visual Basic - Visual Basic 6 : Dessiner un arc sans connaitre le centre du cercle - Visual Basic 6 - CodeS SourceS
- 6 août 2006 à 17:04
- 6 août 2006 à 22:06
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?
Tracer un arc de cercle sans centre
Arc d un cercle - Meilleures réponses
Tracer un cercle plein (un disque quoi) ✓ - Forum - Visual Basic
Comment tracer un arc de cercle sans API - Forum - Visual Basic
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
6 août 2006 à 18:17
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
6 août 2006 à 18:43
Salut, tu as vu la fonction API arc() ?
Description ICI . pas besoin du centre dans ce cas.
6 août 2006 à 21:02
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.
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?
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