Skip to content

Segment2

Segment2 是一个在笛卡尔坐标系中表示二维线段的 trait

LineSegment2CircleSegment2ArcSegment2 是实现 Segment2 trait 的三种线段类型。

Segment2 trait 如下:

rust
pub trait Segment2<T: NumberType>: Debug + Clone + Copy {
    fn segment_type(&self) -> Segment2Type;
    fn source(&self) -> Point2<T>;
    fn source_radian(&self) -> T;
    fn target(&self) -> Point2<T>;
    fn target_radian(&self) -> T;
    fn center(&self) -> Point2<T>;
    fn radius(&self) -> T;
}

DANGER

并非所有方法都适用于所有类型的线段。

LineSegment2 不实现 source_radiantarget_radiancenterradius 方法。

CircleSegment2 不实现 sourcesource_radiantargettarget_radian 方法。

ArcSegment2 实现所有方法。