Помогите переделать функцию определения угла. При таком запросе:
Сама функция:
Возвращает такой вид координат:
А нужен такой вид:
С математикой совсем туго. Наверно координаты нужно сдвинуть на 2пи, но никак не могу вспомнить каким образом.
Код:
be_CoordsToRotation($tX, $tY, $cX, $cY)*45/ATan(1)
Сама функция:
Код:
Func be_CoordsToRotation($bectr_X1, $bectr_Y1, $bectr_X2, $bectr_Y2) ;Author: dwerf
Local $bectr_DX = $bectr_X2-$bectr_X1
Local $bectr_DY = $bectr_Y2-$bectr_Y1
Local $bectr_AXY = Abs(ATan($bectr_DX/$bectr_DY))
Local $bectr_AYX = Abs(ATan($bectr_DY/$bectr_DX))
Local $bectr_hpi = ATan(1)*2
Local $bectr_Angle = 0
If $bectr_X1 > $bectr_X2 Then
$bectr_Angle += 2*$bectr_hpi
If $bectr_Y1 > $bectr_Y2 Then
$bectr_Angle += $bectr_AXY
ElseIf $bectr_Y1 = $bectr_Y2 Then
$bectr_Angle += $bectr_hpi
ElseIf $bectr_Y1 < $bectr_Y2 Then
$bectr_Angle += $bectr_hpi
$bectr_Angle += $bectr_AYX
EndIf
ElseIf $bectr_X1 = $bectr_X2 Then
If $bectr_Y1 > $bectr_Y2 Then
$bectr_Angle += 2*$bectr_hpi
;~ ElseIf $bectr_Y1 = $bectr_Y2 Then
;~ ElseIf $bectr_Y1 < $bectr_Y2 Then
EndIf
ElseIf $bectr_X1 < $bectr_X2 Then
If $bectr_Y1 > $bectr_Y2 Then
$bectr_Angle += $bectr_hpi
$bectr_Angle += $bectr_AYX
ElseIf $bectr_Y1 = $bectr_Y2 Then
$bectr_Angle += $bectr_hpi
ElseIf $bectr_Y1 < $bectr_Y2 Then
$bectr_Angle += $bectr_AXY
EndIf
EndIf
Return $bectr_Angle
EndFunc
Возвращает такой вид координат:
Код:
180
270 я 90
0
Код:
0
270 я 90
180