본문으로 건너뛰기

GetMatrixToMoveTo2PointParallelTo2Point

Overloads

NameDescription
GetMatrixToMoveTo2PointParallelTo2Point(Vertex3D iv1, Vertex3D iv2, Vertex3D iv3, Vertex3D iv4, float offset)대상 2점과 기준선 2 점을 오프셋 만큼 떨어진 평행한 대상 2점이 될 수 있도록 이동/회전 Matrix 계산

GetMatrixToMoveTo2PointParallelTo2Point(Vertex3D iv1, Vertex3D iv2, Vertex3D iv3, Vertex3D iv4, float offset)

public Matrix3D GetMatrixToMoveTo2PointParallelTo2Point(Vertex3D iv1, Vertex3D iv2, Vertex3D iv3, Vertex3D iv4, float offset)

대상 2점과 기준선 2 점을 오프셋 만큼 떨어진 평행한 대상 2점이 될 수 있도록 이동/회전 Matrix 계산

Parameters

NameTypeDescription
iv1Vertex3D이동점 1
iv2Vertex3D이동점 2
iv3Vertex3D고정점 1
iv4Vertex3D고정점 2
offsetfloat오프셋

Returns

TypeDescription
Matrix3D이동/회전 Matrix

Examples

// VIZCore3D.NET Control
private VIZCore3D.NET.VIZCore3DControl vizcore3d;

private void Example()
{
// 이동되어야 할 라인
VIZCore3D.NET.Data.Vertex3D v1
= new VIZCore3D.NET.Data.Vertex3D(-24.85, 254.20, 500);
VIZCore3D.NET.Data.Vertex3D v2
= new VIZCore3D.NET.Data.Vertex3D(-450, -650, 500);

// 고정 라인
VIZCore3D.NET.Data.Vertex3D v3
= new VIZCore3D.NET.Data.Vertex3D(500, 500, 500);
VIZCore3D.NET.Data.Vertex3D v4
= new VIZCore3D.NET.Data.Vertex3D(500, -500, 500);

// 이동&회전 매트릭스 계산
VIZCore3D.NET.Data.Matrix3D matrix
= vizcore3d.GeometryUtility.GetMatrixToMoveTo2PointParallelTo2Point(
v1 /* 이동될 라인 시작점 */
, v2 /* 이동될 라인 끝점 */
, v3 /* 기준선 라인 시작점 */
, v4 /* 기준선 라인 끝점 */
, 1000.0f /* 오프셋 */
);

// 이동될 라인을 포함한 부재 검색
List<VIZCore3D.NET.Data.Node> nodes = vizcore3d.Object3D.Find.QuickSearch("BOX2", true);
if (nodes.Count == 0) return;

// 부재 이동 및 회전
nodes[0].TrasformByRawMatrix(matrix);
}