본문으로 건너뛰기

GetOffset

public static Vector3D GetOffset(List<CorrectionTerm> terms)

보정 성분 목록을 합성한 보정 벡터 반환.

Remarks​

성분별 Value * 단위화한 Direction 의 합.
방향은 방향만 사용되고 크기는 무시되므로, 길이가 1 이 아닌 벡터를 주어도 이동량은 Value 그대로임.
목록이 null 이거나 비어 있으면 영벡터 반환.
성분이 null 이거나 방향이 null·길이 0 이면 그 성분은 기여 0 으로 취급됨(예외 없음).
길이가 아주 작은 방향도 방향으로 유효하여 이동량은 Value 그대로이며, 좌표가 무한·NaN 으로 오염되지 않음.
기준 좌표에 이 벡터를 더한 값이 보정이 반영된 좌표임.

Parameters​

NameTypeDescription
termsList<CorrectionTerm>보정 성분 목록

Returns​

TypeDescription
Vector3D합성 보정 벡터. 성분이 없으면 영벡터

Examples​

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

private void Example()
{
// 성분 두 개를 같은 방향으로 지정 — 이동량은 두 크기의 합
List<VIZCore3D.NET.Data.CorrectionTerm> terms = new List<VIZCore3D.NET.Data.CorrectionTerm>();
terms.Add(new VIZCore3D.NET.Data.CorrectionTerm(3.0f, new VIZCore3D.NET.Data.Vector3D(1.0f, 0.0f, 0.0f)));
terms.Add(new VIZCore3D.NET.Data.CorrectionTerm(2.0f, new VIZCore3D.NET.Data.Vector3D(1.0f, 0.0f, 0.0f)));

// (5, 0, 0) — 3 + 2
VIZCore3D.NET.Data.Vector3D offset = VIZCore3D.NET.Data.CorrectionTerm.GetOffset(terms);

// 방향의 크기는 무시됨 — 길이 2 인 방향을 주어도 결과는 (5, 0, 0) 으로 동일
List<VIZCore3D.NET.Data.CorrectionTerm> notUnit = new List<VIZCore3D.NET.Data.CorrectionTerm>();
notUnit.Add(new VIZCore3D.NET.Data.CorrectionTerm(5.0f, new VIZCore3D.NET.Data.Vector3D(2.0f, 0.0f, 0.0f)));

VIZCore3D.NET.Data.Vector3D sameOffset = VIZCore3D.NET.Data.CorrectionTerm.GetOffset(notUnit);
}