MCPcopy Create free account
hub / github.com/microsoft/SandDance / circleStream

Function circleStream

docs/tests/v2/es6/js/sanddance.js:113313–113332  ·  view source on GitHub ↗
(stream, radius, delta, direction, t0, t1)

Source from the content-addressed store, hash-verified

113311
113312// Generates a circle centered at [0°, 0°], with a given radius and precision.
113313function circleStream(stream, radius, delta, direction, t0, t1) {
113314 if (!delta) return;
113315 var cosRadius = (0, _math.cos)(radius),
113316 sinRadius = (0, _math.sin)(radius),
113317 step = direction * delta;
113318
113319 if (t0 == null) {
113320 t0 = radius + direction * _math.tau;
113321 t1 = radius - step / 2;
113322 } else {
113323 t0 = circleRadius(cosRadius, t0);
113324 t1 = circleRadius(cosRadius, t1);
113325 if (direction > 0 ? t0 < t1 : t0 > t1) t0 += direction * _math.tau;
113326 }
113327
113328 for (var point, t = t0; direction > 0 ? t > t1 : t < t1; t -= step) {
113329 point = (0, _cartesian.spherical)([cosRadius, -sinRadius * (0, _math.cos)(t), -sinRadius * (0, _math.sin)(t)]);
113330 stream.point(point[0], point[1]);
113331 }
113332} // Returns the signed angle of a cartesian point relative to [cosRadius, 0, 0].
113333
113334
113335function circleRadius(cosRadius, point) {

Callers 1

circleFunction · 0.70

Calls 1

circleRadiusFunction · 0.70

Tested by

no test coverage detected