pub struct Arc<S: Scalar> {
pub circle: Circle<S>,
pub start: Vector3<S>,
pub end: Vector3<S>,
}Expand description
A circular arc: the part of circle from start counter-clockwise
(seen with circle.normal towards the viewer) to end — all of it when
start and end coincide.
Fields§
§circle: Circle<S>§start: Vector3<S>§end: Vector3<S>Implementations§
Source§impl<S: Scalar> Arc<S>
impl<S: Scalar> Arc<S>
Sourcepub fn could_be_closed(&self) -> bool
pub fn could_be_closed(&self) -> bool
Whether the arc could be the whole circle.
Sourcepub fn sweep(&self) -> f64
pub fn sweep(&self) -> f64
The angle the arc turns through, in radians, in (0, 2 pi].
A plain f64: Scalar has no inverse trigonometry, and this is
only ever used to choose a point along the arc (see
Arc::point_at).
Sourcepub fn point_at(&self, fraction: f64) -> GeopResult<Vector3<S>>
pub fn point_at(&self, fraction: f64) -> GeopResult<Vector3<S>>
The point fraction of the way along the arc, by angle: start at
0, end at 1.
The angle is computed in f64 (see Arc::sweep) and taken as
sharp — legitimately: which point is “0.3 of the way” is a choice
the caller makes, and any angle within rounding of it serves that
choice equally well. What the result has to be honestly is a point
on the circle, and it is, since it is built from the circle itself.
Sourcepub fn tangent_at(&self, p: &Vector3<S>) -> GeopResult<Vector3<S>>
pub fn tangent_at(&self, p: &Vector3<S>) -> GeopResult<Vector3<S>>
The unit tangent at p, a point of the arc, pointing the way the arc
runs.