math.sin(_a)
berechnet den Sinus des Winkels _a
, also das Verhältnis der Längen von Gegenkathete zu Hypotenuse im rechtwinkligen Dreieck.
Wichtig: Die Funktion geht davon aus, dass _a
im Bogenmaß angegeben wird! Ist ein Gradmaß gegeben, muss der Winkel zuerst mit math.rad umgerechnet werden.
Zusammen mit math.cos kann man mit dem Sinus Kreiskoordinaten abhängig von einem Winkel und einem Radius berechnen. Siehe dazu auch das Schaubild unten.
Iteriert man mit gleich bleibendem Radius durch wachsende Winkel α, können so z.B. Entities in einer Kreisformation gesetzt werden:
function DrawCircle(_Position, _Radius, _EntityType, _NumberOfEntities) local AngleStep = 360/_NumberOfEntities local EntityPositionX, EntityPositionY for alpha = 0, 360, AngleStep do -- Winkel in der Schleife ist im Gradmaß, muss also noch umgerechnet werden EntityPositionX = _Position.X + math.cos(math.rad(alpha)) * _Radius EntityPositionY = _Position.Y + math.sin(math.rad(alpha)) * _Radius Logic.CreateEntity(_EntityType, EntityPositionX, EntityPositionY, 0, 0) end end