|
Google-Anzeigen
|
Google-Anzeigen
|
Google-Anzeigen
|
Studium - Ergänzung: Code
Code (Auschnitt) in schönerer Form:
' Basic Turtle Commands **************************
Sub FW(Lang)
' Sub FW(x, y, z, WinkelHorizontal, WinkelVertikal, Lang)
' FW = Vorwaerts
' Malt ggf. (Wenn not Stifthoch gilt) eine Linie und
' ändert die Turtle-Position.
' Die Linie verbindet alte und neue Turtle-Position
Dim OldX, OldY, OldZ
Dim LangX, LangY, LangZ
Dim LangV ' Lang vorwärts (horizontal)
Dim LangH ' und Lang hoch (senkrecht)
Dim LangNeu
OldX = x
OldY = y
OldZ = z
' Vertikalen Winkel auswerten
' Die Gesamtstrecke erstmal anhand des WinkelVertikal
' in den horizontalen und vertikalen Anteil splitten:
ErhebeLaengeKatheden WinkelVertikal, Lang, LangH, LangV
' Horizontalen Winkel auswerten;
' der horizontale Anteil LangV wird als LangNeu
' nochmal in x und y gesplittet:
LangNeu = LangV
LangZ = LangH
ErhebeLaengeKatheden WinkelHorizontal, LangNeu, LangX, LangY
x = x + LangX
y = y + LangY
z = z + LangZ
If Not StiftOben Then
LogFile OldX, OldY, OldZ, x, y, z, StiftFarbe, StiftDicke
intAnzZeilen = intAnzZeilen + 1
End If
End Sub
' ---------------------------------------------------------------
Sub ErhebeLaengeKatheden(Winkel, Hypotenuse, LaengeX, LaengeY)
' Erhebe Laenge der Katheden LaengeX, LaengeY aus
' Winkel (Alpha) und Länge der Hypotenuse (im
' rechtwinkligen Dreieck).
' Eingabewert: Winkel, Hypotenuse
' Rückgabewert: LaengeX, LaengeY
' Anwendung: siehe TestOn_ErhebeLaengeKatheden und
' vor allem FW.
If Not boolSinCosTabelleDone Then
MsgBox "SinCosTabelle not Done", _
vbCritical, _
"Turtle"
' End
ErstelleSinCosTabelle
End If
LaengeX = SinTab(Winkel) * Hypotenuse
LaengeY = CosTab(Winkel) * Hypotenuse
End Sub
Sub ErstelleSinCosTabelle()
' Die mathematische Konstante Pi.
Const Pi = 3.14159265358979
' Variable (im Prinzip Konstante)
' zur Umrechnung beliebiger
' Winkel in das Bogenmass:
Dim PiDurch180
Dim Winkel As Integer
Dim WinkelBogenmass As Double
' MsgBox "ErstelleSinCosTabelle"
PiDurch180 = Round(Pi / 180, 5)
For Winkel = 0 To 361
WinkelBogenmass = Winkel * PiDurch180
SinTab(Winkel) = Round(Sin(WinkelBogenmass), 15)
CosTab(Winkel) = Round(Cos(WinkelBogenmass), 15)
Next
boolSinCosTabelleDone = True
End Sub
Code eingefügt mit Syntaxhighlighter 4.0
|
|
|