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  }