tracer un cercle avec la methode pset

tracer un cercle avec la methode pset - VB/VBA/VBS - Programmation

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

Reply

Marsh Posté le 08-12-2002 à 22:16:14   

Reply

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).
 


    For X = 110 To 210
        A = Abs(X - 160) / 50
        Y = Sqr(1 - A * A) * 50
        Z = -Y
        PSet (X, Y + 85), vbBlack
        PSet (X, Z + 85), vbBlack
    Next X


 
X, Y, Z, A, B sont déclarés As Single


Message édité par drasche le 09-12-2002 à 10:33:09
Reply

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 :D).
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%


Message édité par Carbon_14 le 09-12-2002 à 14:20:46
Reply

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).


Message édité par Carbon_14 le 09-12-2002 à 12:25:23
Reply

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. :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed