// **目標への絶対角度を返す。** // 引数 // 目標のX座標、目標のY座標 Function getdirection(targetx As Double, targety as double) As Double { Dim targetDirection As Double If (My.X < targetx) AND (targety < My.Y) Then targetDirection = 360 - RadToDegree(Atn((my.Y - targety)/(targetx - my.X))) End If If (My.X == targetx) AND (targety < My.Y) Then targetDirection = 270 End If If (targetx < My.X) AND (targety < My.Y) Then targetDirection = 180 + RadToDegree(Atn((my.Y - targety )/(my.X - targetx))) End If If (targetx < My.X) AND (targety == My.Y) Then targetDirection = 180 End If If (targetx < My.X) AND (My.Y < targety ) Then targetDirection = 180 - RadToDegree(Atn((targety - my.Y)/(my.X - targetx))) End If If (targetx == My.X) AND (My.Y < targety ) Then targetDirection = 90 End If If (My.X < targetx) AND (My.Y < targety ) Then targetDirection = RadToDegree(Atn((targety - my.Y)/(targetx - my.X))) End If If (My.X < targetx) AND (My.Y == targety) Then targetDirection = 0 End If Return(targetDirection ) }