Coordonnées d'un point à la périphérie d'un cercle ??

cs_neo12 Messages postés 16 Date d'inscription mercredi 29 mai 2002 Statut Membre Dernière intervention 5 novembre 2002 - 1 juil. 2002 à 17:05
Progmeister Messages postés 82 Date d'inscription samedi 23 février 2002 Statut Membre Dernière intervention 28 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 :-(

3 réponses

Progmeister Messages postés 82 Date d'inscription samedi 23 février 2002 Statut Membre Dernière intervention 28 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

Bonne Prog

Progmeister :)
0
cs_neo12 Messages postés 16 Date d'inscription mercredi 29 mai 2002 Statut Membre Derniè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 ?
0
Progmeister Messages postés 82 Date d'inscription samedi 23 février 2002 Statut Membre Dernière intervention 28 mars 2005
2 juil. 2002 à 22:18
T'as tout compris, je penses que ca devrait marcher...

Bonne Prog

Progmeister :)
0
Rejoignez-nous