幾何学幾何学
平面上の直線; 2D Line

概要
平面上の直線は通過点ベクトル\(\boldsymbol{v}\)と方向ベクトル\(\boldsymbol{v_d}\)で表現される。



ソースコード

namespace Geometry.Geometry2D {

    /// <summary>直線</summary>
    public class Line2D {
        
        /// <summary>コンストラクタ</summary>
        public Line2D(Vector2D v, Vector2D direction) {
            this.V = v;
            this.Direction = direction;
        }

        /// <summary>通過点</summary>
        public Vector2D V { get; set; }
        
        /// <summary>方向</summary>
        public Vector2D Direction { get; set; }
        
        /// <summary>行列積</summary>
        public static Line2D operator *(Matrix2D matrix, Line2D line) {
            Vector2D v0 = matrix * line.V, v1 = matrix * (line.V + line.Direction);

            return new Line2D(v0, v1 - v0);
        }

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

        /// <summary>有効な直線であるか判定</summary>
        public static bool IsValid(Line2D line) {
            return Vector2D.IsValid(line.V) && Vector2D.IsValid(line.Direction) && !Vector2D.IsZero(line.Direction);
        }
    }
}

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

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