GetOffset
public static Vector3D GetOffset(List<CorrectionTerm> terms)
보정 성분 목록을 합성한 보정 벡터 반환.
Remarks
성분별 Value * 단위화한 Direction 의 합.
방향은 방향만 사용되고 크기는 무시되므로, 길이가 1 이 아닌 벡터를 주어도 이동량은 Value 그대로임.
목록이 null 이거나 비어 있으면 영벡터 반환.
성분이 null 이거나 방향이 null·길이 0 이면 그 성분은 기여 0 으로 취급됨(예외 없음).
길이가 아주 작은 방향도 방향으로 유효하여 이동량은 Value 그대로이며, 좌표가 무한·NaN 으로 오염되지 않음.
기준 좌표에 이 벡터를 더한 값이 보정이 반영된 좌표임.
Parameters
| Name | Type | Description |
|---|---|---|
| terms | List<CorrectionTerm> | 보정 성분 목록 |
Returns
| Type | Description |
|---|---|
| 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);
}