Arc de cercle avec deux points et le centre

Résolu
benbedo Messages postés 16 Date d'inscription lundi 13 septembre 2004 Statut Membre Dernière intervention 3 décembre 2004 - 6 oct. 2004 à 09:48
benbedo Messages postés 16 Date d'inscription lundi 13 septembre 2004 Statut Membre Dernière intervention 3 décembre 2004 - 7 oct. 2004 à 09:23
Bonjour, juste une question graphique de base, comment faire pour tracer un arc de cercle à partir des deux point extrêmes et du centre du cercle, sachant qu'il y a deux arcs possible donc qu'il faut pouvoir specifier lequel tracer.
Merci

Benbedo

8 réponses

cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 11
6 oct. 2004 à 18:57
petite correction :

If Xdep - Xcentre <> 0 Then
   AnglDep = Atn((Ydep - Ycentre) / (Xdep - Xcentre))
Else
   AnglDep = (2 - Sgn(Ydep - Ycentre)) * Pi / 2
End If
If Xarr - Xcentre <> 0 Then
    AnglArr = Atn((Yarr - Ycentre) / (Xarr - Xcentre))
Else
   AnglArr = (2 - Sgn(Yarr - Ycentre)) * Pi / 2
End If
3
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 129
6 oct. 2004 à 11:24
Utilise la fonction de l'API Windows ArcTo.

La fonction Circle de VB le permet aussi, mais il faut lui indiquer des angles et non des points !
_______________________________________

DarK Sidious

[Responsable API/VB du site www.ProgOtoP.com]
Téléchargez ProgOtoP API Viewer
0
benbedo Messages postés 16 Date d'inscription lundi 13 septembre 2004 Statut Membre Dernière intervention 3 décembre 2004
6 oct. 2004 à 11:26
Arcto necessite 4 points, la je n'en donne que trois...
Benbedo
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 129
6 oct. 2004 à 11:54
oui : il demande le rectangle dans lequel sera tracé le cercle... Pas trop dur à définir si tu connais le rayon et un point du cercle...

_______________________________________

DarK Sidious

[Responsable API/VB du site www.ProgOtoP.com]
Téléchargez ProgOtoP API Viewer
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
benbedo Messages postés 16 Date d'inscription lundi 13 septembre 2004 Statut Membre Dernière intervention 3 décembre 2004
6 oct. 2004 à 12:53
ok donc en faite je dois donner les coordonnées des deux coins du carrée qui entoure mon cercle, mais aprés, les deux autres points se rapporte a quoi? au deux points, celui de départ et celui d'arrivé?
Je vais faire des tests. thx

Benbedo
0
benbedo Messages postés 16 Date d'inscription lundi 13 septembre 2004 Statut Membre Dernière intervention 3 décembre 2004
6 oct. 2004 à 13:15
J'ai fais des essais, mais il ne sont pas concluant... peut etre peux-tu m'aider a comprendre l'API par un petit exemple, comment je peux faire pour tracer un arc de cercle de centre (x0,y0), de rayon r, partant du point (x1,y1) et allant jusqu'au point (x2,y2) ceci dans une picture box de taille widht*height.

J'ai essayé cela mais ca marche pas, ca ne trace qu'une droite:

ArcTo(Picture1.hdc, Picture1.Width / 2 - r , Picture1.Height / 2 - r , Picture1.Width / 2 + r, Picture1.Height / 2 + r, x1, y1 , x2 ,y2)


Benbedo
0
cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 11
6 oct. 2004 à 18:32
Bonjour
voici qui devrait marcher :

Private Sub TraceArc(Xcentre As Double, Ycentre As Double, Xdep As Double, Ydep As Double, Xarr As Double, Yarr As Double)
Const Pi As Double = 3.14159265
Dim Rayon As Double, Verif As Double
Dim  AnglDep As Double
Dim  AnglArr As Double
Rayon = Sqr((Xcentre - Xdep) ^ 2 + (Ycentre - Ydep) ^ 2)
Verif = Sqr((Xcentre - Xarr) ^ 2 + (Ycentre - Yarr) ^ 2)
If Rayon <> Verif Then    MsgBox "Impossible": Exit Sub
If Xdep - Xcentre <> 0 Then
   AnglDep = Atn((Ydep - Ycentre) / (Xdep - Xcentre))
Else
   AnglDep = Pi / 2
End If
If Xarr - Xcentre <> 0 Then
   AnglArr = Atn((Yarr - Ycentre) / (Xarr - Xcentre))
Else
   AnglArr = Pi / 2
End If
Picture1.Circle (Xcentre, Ycentre), Rayon, , AnglDep, AnglArr
End Sub
0
benbedo Messages postés 16 Date d'inscription lundi 13 septembre 2004 Statut Membre Dernière intervention 3 décembre 2004
7 oct. 2004 à 09:23
Merci bien pour ton aide... je vais tester cela...
Cela ne marche pas trés bien dans mon problème, mais cel vient surement de moi car dans la théorie ton programme semble fonctionner... j'ai du faire une erreur quelque part genre dans mes conversions de mesures ou d'angles... j'accepte ta réponse et je vais chercher de moi même... merci

Benbedo
0