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%
Message édité par Carbon_14 le 09-12-2002 à 14:20:46