Hey @ all,
wie kann ich die Punkte P1 bis P8 auf meiner Skizze rechnerisch herausfinden? Gegeben ist der Mittelpunkt, der Radius und der (blau markierte) Winkel von 45°.
mfG
Developer30
Hey @ all,
wie kann ich die Punkte P1 bis P8 auf meiner Skizze rechnerisch herausfinden? Gegeben ist der Mittelpunkt, der Radius und der (blau markierte) Winkel von 45°.
mfG
Developer30
Mit Vektoren geht das z.B. so.
#include <Array.au3>
[/autoit] [autoit][/autoit] [autoit]Global Const $Pi_Div_180 = ACos(-1) / 180
[/autoit] [autoit][/autoit] [autoit]$iLength = 10
$iStartAngle = 0
$iStepAngle = 45
$iSteps = 8
Global $aVector_Test[2] = [0, $iLength * -1], $aResults[$iSteps + 1][2] = [[$iSteps]]
[/autoit] [autoit][/autoit] [autoit]For $i = 1 To $aResults[0][0]
$aVector_Result = _Vector_RotateOnZAxis($aVector_Test, $iStartAngle + ($i - 1) * $iStepAngle)
$aResults[$i][0] = $aVector_Result[0]
$aResults[$i][1] = $aVector_Result[1]
Next
_ArrayDisplay($aResults)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func _Vector_RotateOnZAxis($aVector_Rotate, $iDegree)
Local $aVector_Return[2]
$aVector_Return[0] = $aVector_Rotate[0] * _Cos($iDegree) - $aVector_Rotate[1] * _Sin($iDegree)
$aVector_Return[1] = $aVector_Rotate[1] * _Cos($iDegree) + $aVector_Rotate[0] * _Sin($iDegree)
Return $aVector_Return
EndFunc ;==>_Vector_RotateOnZAxis
Func _Cos($nValue)
Return Cos($nValue * $Pi_Div_180)
EndFunc ;==>_Cos
Func _Sin($nValue)
Return Sin($nValue * $Pi_Div_180)
EndFunc ;==>_Sin
name22 thx für dein Beispiel ;D
hab eine Lösung für mein Problem gefunden...
Zitathab eine Lösung für mein Problem gefunden...
Poste es doch ;). Vielleicht hat irgendwann jemand hier im Forum das selbe Problem...
Also für einfache Dreiecksbeziehungen umständlich Vektorrotationen durchzuführen ist schon ziemlich mit Kanonen auf Spatzen geschossen.
Simpler:
#include <Array.au3>
Global Const $PI = ACos(-1)
;Kreisdaten:
Global $M[2] = [5, 4] ; Mittelpunkt
Global $R = 2 ; Radius
Global $aPunkte[8][2] ; Array für Kreispunkte
Global $fWinkel = $PI/4 ; 45° in Radiant
For $i = 0 To 7
$aPunkte[$i][0] = $M[0] + $R * Sin($i * $fWinkel)
$aPunkte[$i][1] = $M[1] + $R * Cos($i * $fWinkel)
Next
_ArrayDisplay($aPunkte)
[/autoit]jo perfekt das is mal ne kurz & knackige Lösung