(stream, radius, delta, direction, t0, t1)
| 10429 | |
| 10430 | // Generates a circle centered at [0°, 0°], with a given radius and precision. |
| 10431 | function circleStream(stream, radius, delta, direction, t0, t1) { |
| 10432 | if (!delta) return; |
| 10433 | var cosRadius = cos$1(radius), |
| 10434 | sinRadius = sin$1(radius), |
| 10435 | step = direction * delta; |
| 10436 | if (t0 == null) { |
| 10437 | t0 = radius + direction * tau$1; |
| 10438 | t1 = radius - step / 2; |
| 10439 | } else { |
| 10440 | t0 = circleRadius(cosRadius, t0); |
| 10441 | t1 = circleRadius(cosRadius, t1); |
| 10442 | if (direction > 0 ? t0 < t1 : t0 > t1) t0 += direction * tau$1; |
| 10443 | } |
| 10444 | for (var point, t = t0; direction > 0 ? t > t1 : t < t1; t -= step) { |
| 10445 | point = spherical([cosRadius, -sinRadius * cos$1(t), -sinRadius * sin$1(t)]); |
| 10446 | stream.point(point[0], point[1]); |
| 10447 | } |
| 10448 | } |
| 10449 | |
| 10450 | // Returns the signed angle of a cartesian point relative to [cosRadius, 0, 0]. |
| 10451 | function circleRadius(cosRadius, point) { |
no test coverage detected