github.com/pavlo67/common@v0.5.3/common/mathlib/plane/angle.go (about) 1 package plane 2 3 import "math" 4 5 // XToYAngle is angle in radians (-Pi < rotation <= Pi), rotation from Ox to Oy (counter clockwise) has a positive angle 6 type XToYAngle float64 7 8 // Position moves geometry shape to Point2 and (after!) rotates it with XToYAngle angle around itself 9 type Position struct { 10 Point2 11 XToYAngle 12 } 13 14 func (xToYAngle XToYAngle) Canon() XToYAngle { 15 if xToYAngle > math.Pi { 16 return xToYAngle - 2*math.Pi 17 } else if xToYAngle <= -math.Pi { 18 return xToYAngle + 2*math.Pi 19 } 20 21 return xToYAngle 22 } 23 24 func (xToYAngle XToYAngle) Point2(radius float64) Point2 { 25 return Point2{radius * math.Cos(float64(xToYAngle)), radius * math.Sin(float64(xToYAngle))} 26 }