Coordonnées d'un point à la périphérie d'un cercle ??
cs_neo12
Messages postés16Date d'inscriptionmercredi 29 mai 2002StatutMembreDernière intervention 5 novembre 2002
-
1 juil. 2002 à 17:05
Progmeister
Messages postés82Date d'inscriptionsamedi 23 février 2002StatutMembreDernière intervention28 mars 2005
-
2 juil. 2002 à 22:18
voilà, j'voudrais utiliser paint.picture pour dessiner un cercle dans lequel s'inscrit une image.
Pour simplifier prenons 1 quart de cercle
pour reproduire ce 1/4 de cercle avec des rectangles (fonctions paint.picture), cela revient à "empiler" à la base un rectangle de coordonées (x,Y) et de la longueur égale au rayon, puis dessus
un autre rectangle de coordonnées (X,y-1) mais avec une longueur qui soit issu d'un calcul qui permet en donnant le le "y-1" d'avoir le X (donc d'avoir la longueur d'après la hauteur). cette fonction correspondrait donc à donner les coordonnées du point y sur l'arc de cercle en connaissant le X.
Ainsi de suite l'empilage de ces rectangles donne un 1/4 de cercle. Si qlq'1 à compris aidez moi SVP, je bute là dessus depuis plusieurs jour :-(
Progmeister
Messages postés82Date d'inscriptionsamedi 23 février 2002StatutMembreDernière intervention28 mars 2005 1 juil. 2002 à 20:12
Sur un cercle, les coordonnées sont définies de façon trigonométrique :
Un cercle trigonométrique est un cercle de rayon 1 :
Les points de ce cercle ont pour coordonées (cos(x), sin(x) ou x est l'angle en radian seulement toi tu connait l'abscisse et tu veut l'ordonnée : l'abscisse : a est égale à cos(x)
Pour retrouver x a partir de a, il faut utiliser la fonction arccosinus qui n'existe pas en vb mais est régie par la formule :
Arccos(X) = Atn(-X / Sqr(-X * X + 1)) + 2 * Atn(1)
Ou x est un nombre compris entre 0 et 1
La normalement tu as l'angle formé par le centre du cercle, le point que tu cherches et le point dont tu connais l'abscisse mais dont l'ordonnée est nulle, Tu calcule donc le sinus de cet angle et ca te donne y
Mais ca c vrai pour un cercle de rayon 1
Avant de passer l'abscisse a la fonction , divise la par le rayon pour qu'elle soit comprise entre 0 et 1
Je résume
Tu cherche un point d'un cercle de rayon r et de centre (a, b)
Ce point a pour coordonées (x, y), tu connait x$
Dim o
o=(x-a)/r
Dim p
p = Atn(-o / Sqr(-o * o + 1)) + 2 * Atn(1)
Dim k
k=sin(p)
y= (p*r)+b
(je tient compte des coordonnées du cercle)
Voila tu as trouvé y
J'espere avoir été clair et avoir répondu a ta question
cs_neo12
Messages postés16Date d'inscriptionmercredi 29 mai 2002StatutMembreDernière intervention 5 novembre 2002 2 juil. 2002 à 17:27
merci beaucoup pour ton aide, je vais essayer de mettre ça en pratique, seul bémol, c'est X que je cherche et non pas Y, Y étant la position verticale de mon rectangle aligné à gauche, il me faut avoir la longueur (que j'obtiendrais en enlevant du y que je trouverais le y corrspondant à l'alignement gauche (0 par défaut). mais bon, si j'ai bien compris il me suffit de chercher le sinus par une fonction ArcSin similaire ?