pub fn seg_tangent_vector<T>(
    v1: PlineVertex<T>,
    v2: PlineVertex<T>,
    point_on_seg: Vector2<T>
) -> Vector2<T>
where T: Real,
Expand description

Find the tangent direction vector on a polyline segment defined by v1 to v2 at point_on_seg.

Note: The vector returned is just the direction vector, add the point_on_seg position to get the actual tangent vector.

§Examples

// counter clockwise half circle arc going from (2, 2) to (2, 4)
let v1 = PlineVertex::new(2.0, 2.0, 1.0);
let v2 = PlineVertex::new(4.0, 2.0, 0.0);
let midpoint = Vector2::new(3.0, 1.0);
assert!(seg_tangent_vector(v1, v2, midpoint).normalize().fuzzy_eq(Vector2::new(1.0, 0.0)));
assert!(seg_tangent_vector(v1, v2, v1.pos()).normalize().fuzzy_eq(Vector2::new(0.0, -1.0)));
assert!(seg_tangent_vector(v1, v2, v2.pos()).normalize().fuzzy_eq(Vector2::new(0.0, 1.0)));