MCPcopy Index your code
hub / github.com/tdewolff/canvas / angleTime

Function angleTime

util.go:78–98  ·  view source on GitHub ↗

angleTime returns the time [0.0,1.0] of theta between [lower,upper]. When outside of [lower,upper], the result will also be outside of [0.0,1.0].

(theta, lower, upper float64)

Source from the content-addressed store, hash-verified

76
77// angleTime returns the time [0.0,1.0] of theta between [lower,upper]. When outside of [lower,upper], the result will also be outside of [0.0,1.0].
78func angleTime(theta, lower, upper float64) float64 {
79 sweep := true
80 if upper < lower {
81 // sweep is false, ie direction is along negative angle (clockwise)
82 lower, upper = upper, lower
83 sweep = false
84 }
85 theta = angleNorm(theta - lower + Epsilon)
86 upper = angleNorm(upper - lower)
87
88 t := (theta - Epsilon) / upper
89 if !sweep {
90 t = 1.0 - t
91 }
92 if Equal(t, 0.0) {
93 return 0.0
94 } else if Equal(t, 1.0) {
95 return 1.0
96 }
97 return t
98}
99
100// angleBetween is true when theta is in range [lower,upper] including the end points. Angles can be outside the [0,2PI) range.
101func angleBetween(theta, lower, upper float64) bool {

Callers 2

TestAngleTimeFunction · 0.85

Calls 2

angleNormFunction · 0.85
EqualFunction · 0.85

Tested by 1

TestAngleTimeFunction · 0.68