tracer un cercle avec la methode pset - VB/VBA/VBS - Programmation
Marsh Posté le 09-12-2002 à 10:32:40
c'est pas génial mais c'est tout ce que j'ai sur moi (je suis pas spécialiste en math donc j'oserais même pas modifier le code).
|
X, Y, Z, A, B sont déclarés As Single
Marsh Posté le 09-12-2002 à 11:26:49
On peut modifier la formule drasche en
X0 = la valeur qu'on veut pour le X du centre
ici X0% = 160
Y0% la valeur qu'on veut pour Y du centre
Y0% = 85 ici
Ray% = rayon, 50 ici
For X% = X0% - Ray% To X0% + Ray%
A = Abs(X% - X0%) / Ray%
Y = Sqr(1 - A * A) * Ray%
PSet (X%, Y0% + Y), vbBlack
PSet (X%, Y0% - Y), vbBlack
Next X%
Cette méthode a pour intérêt de ne calculer la racine carrée qu'une fois pour deux points (symétrie par rapport à axe des Y et aussi des X ).
Ca gagne en temps de calcul.
A vérifier, tester, on peut aussi ne calculer qu'un arc de 90°
For X% = X0% - Ray% To X0%
A% = Abs(X% - X0%) / Ray%
Y% = Sqr(1 - A% * A%) * Ray%
' point gauche en haut
PSet (X%, Y0% + Y%), vbBlack
' point gauche en bas
PSet (X%, Y0% - Y%), vbBlack
' point à droite en haut
PSet (2 * X0% - X%, Y0% + Y%), vbBlack
' point à droite en bas
PSet (2 * X0% - X%, Y0% - Y%), vbBlack
Next X%
Marsh Posté le 09-12-2002 à 12:13:35
Le sqr() est bon ? Habituellement, on utilise plutôt sin()..
sqr(0) = sin(0°) = 0
sqr(1) = sin(90°) = 1
sqr(0,5) = sin(45°) = 0,707
mais à part ça. Le développement limité de sin() et sqr(), je sais plus (ça fait bientôt 30 ans que j'utilise plus).
Marsh Posté le 10-12-2002 à 14:42:38
Finalement, vu qu'il n'y a pas de matheux dans la salle, en réfléchissant (:sleep, l'équation des points d'un cercle, c'est bien x^2 + y^2 = constante ?
Le besoin de calcul de la racine carrée devient alors "limpide".
Solilotons.
Marsh Posté le 08-12-2002 à 22:16:14
je chrche a tracer un cercle avec pset mais je ne connais pas la formule pour le tracer