Small Basic: Comment Utiliser les Fonctions Trigonométriques (fr-FR)
Imaginons, que nous dessinons un arc de cercle.
Supposons que le centre de cet arc soit x = 200, y = 300, l'angle de départ a1 = -30 et l'angle de fin a2 = -60.
En mathématiques, l'axe des y va vers le haut. Mais dans GraphicsWindow de Small Basic, l'axe des y va vers le bas. Donc signer (inverse négatif) l'angle et il devient son opposé.
Si vous n'utilisez pas les fonctions trigonométriques, utilisez uniquement 0, 30, 45, 60, 90, ...[degrés]. Entre ces angles vous pouvez calculer la hauteur s à partie de la largeur c d'un triangle dont les trois sommets r, c, s comme l'image précédente ont la relation r2 = s2 + c2 .
Mais pour n'importe quel autre triangle, utilisez les fonctions trigonométriques (sin, cos).
Faites attention car les fonctions trigonométriques utilise des [radian] au lieu de [degré] dans le Small Basic.
Vous pouvez utiliser Math.GetRadians(degree) pour convertir des degrés en radians.
L'exemple suivant montre comment ne pas utiliser ou comment utiliser les fonctions trigonométriques pour dessiner les arcs de cercle.
gw = GraphicsWindow.Width
gh = GraphicsWindow.Height
DrawGrid()
x = 200
y = 300
r = 200
DrawArcwoTrigo()
Program.Delay(3000)
GraphicsWindow.Clear()
DrawGrid()
a1 = -30
a2 = -60
DrawArcwTrigo()
Sub DrawArcwoTrigo ' draw arc without trigonometric functions
GraphicsWindow.Title = "Arc without Trigonometric Functions"
c1 = r * Math.SquareRoot(3) / 2 ' a1 = -30
c2 = r / 2 ' a2 = -60
r2 = Math.Power(r, 2)
For c = c1 To c2 Step -1
s = Math.SquareRoot(r2 - Math.Power(c, 2))
x2 = x + c
y2 = y - s
If c = c1 Then
GraphicsWindow.PenColor = "Gray"
GraphicsWindow.DrawLine(x, y, x2, y2)
Else
GraphicsWindow.PenColor = "Black"
GraphicsWindow.DrawLine(x1, y1, x2, y2)
EndIf
If c - 1 < c2 Then
GraphicsWindow.PenColor = "Gray"
GraphicsWindow.DrawLine(x, y, x2, y2)
EndIf
x1 = x2
y1 = y2
EndFor
EndSub
Sub DrawArcwTrigo ' draw arc with trigonometric functions
GraphicsWindow.Title = "Arc with Trigonometric Functions"
For a = a1 To a2 Step -0.3
x2 = x + r * Math.Cos(Math.GetRadians(a))
y2 = y + r * Math.Sin(Math.GetRadians(a))
If a = a1 Then
GraphicsWindow.PenColor = "Gray"
GraphicsWindow.DrawLine(x, y, x2, y2)
Else
GraphicsWindow.PenColor = "Black"
GraphicsWindow.DrawLine(x1, y1, x2, y2)
EndIf
If a - 0.3 < a2 Then
GraphicsWindow.PenColor = "Gray"
GraphicsWindow.DrawLine(x, y, x2, y2)
EndIf
x1 = x2
y1 = y2
EndFor
EndSub
Sub DrawGrid
GraphicsWindow.PenColor = "MediumSeaGreen"
GraphicsWindow.BrushColor = "MediumSeaGreen"
For _x = 0 To gw Step 50
GraphicsWindow.DrawLine(_x, 0, _x, gh)
If gw - 50 < _x Then
GraphicsWindow.DrawText(_x + 4, 4, "x")
Else
GraphicsWindow.DrawText(_x + 4, 4, _x)
EndIf
EndFor
For _y = 0 To gh Step 50
GraphicsWindow.DrawLine(0, _y, gw, _y)
If gh - 50 < _y Then
GraphicsWindow.DrawText(4, _y + 4, "y")
Else
GraphicsWindow.DrawText(4, _y + 4, _y)
EndIf
EndFor
EndSub
Autres Langues
- Article original: Small Basic: How to Use Trigonometric Functions (en-US)