空間上の線分; 3D Segment
概要
空間上の線分は始点ベクトル\(\boldsymbol{v_0}\)と終点ベクトル\(\boldsymbol{v_1}\)で表現される。
線分の長さ\(L\)は以下で与えられる。
\(\quad L = |\boldsymbol{v_0} - \boldsymbol{v_1}|\)
ソースコード
namespace Geometry.Geometry3D {
/// <summary>線分</summary>
public class Segment3D {
/// <summary>コンストラクタ</summary>
public Segment3D(Vector3D v0, Vector3D v1) {
this.V0 = v0;
this.V1 = v1;
}
/// <summary>始点</summary>
public Vector3D V0 { get; set; }
/// <summary>終点</summary>
public Vector3D V1 { get; set; }
/// <summary>長さ</summary>
public double Length => Vector3D.Distance(V0, V1);
/// <summary>行列積</summary>
public static Segment3D operator *(Matrix3D matrix, Segment3D segment) {
return new Segment3D(matrix * segment.V0, matrix * segment.V1);
}
/// <summary>不正な線分</summary>
public static Segment3D Invalid => new Segment3D(Vector3D.Invalid, Vector3D.Invalid);
/// <summary>有効な線分であるか判定</summary>
public static bool IsValid(Segment3D segment) {
return Vector3D.IsValid(segment.V0) && Vector3D.IsValid(segment.V1);
}
}
}
関連項目
空間ベクトル
空間上の同次変換行列
空間上の直線
空間上の三角形
空間上の円
空間上の平面
空間上の球体
空間上の四面体
空間上の交差
四元数
空間上の線分 単体テスト