幾何学幾何学
平面上の線分; 2D Segment

概要
平面上の線分は始点ベクトル\(\boldsymbol{v_0}\)と終点ベクトル\(\boldsymbol{v_1}\)で表現される。

線分の長さ\(L\)は以下で与えられる。
\(\quad L = |\boldsymbol{v_0} - \boldsymbol{v_1}|\)


ソースコード

namespace Geometry.Geometry2D {

    /// <summary>線分</summary>
    public class Segment2D {

        /// <summary>コンストラクタ</summary>
        public Segment2D(Vector2D v0, Vector2D v1) {
            this.V0 = v0;
            this.V1 = v1;
        }

        /// <summary>始点</summary>
        public Vector2D V0 { get; set; }
        
        /// <summary>終点</summary>
        public Vector2D V1 { get; set; }

        /// <summary>長さ</summary>
        public double Length => Vector2D.Distance(V0, V1);

        /// <summary>行列積</summary>
        public static Segment2D operator *(Matrix2D matrix, Segment2D segment) {
            return new Segment2D(matrix * segment.V0, matrix * segment.V1);
        }

        /// <summary>不正な線分</summary>
        public static Segment2D Invalid => new Segment2D(Vector2D.Invalid, Vector2D.Invalid);

        /// <summary>有効な線分であるか判定</summary>
        public static bool IsValid(Segment2D segment) {
            return Vector2D.IsValid(segment.V0) && Vector2D.IsValid(segment.V1);
        }
    }
}

関連項目
平面ベクトル
平面上の同次変換行列
平面上の直線
平面上の三角形
平面上の円
平面上の交差
平面上の線分 単体テスト

ライブラリライブラリ
確率統計確率統計
線形代数線形代数
幾何学幾何学
最適化最適化
微分方程式微分方程式
画像処理画像処理
補間補間
機械学習機械学習
クラスタリングクラスタリング
パズルゲーム・パズル
未分類未分類