벡터의 일차 결합 (Linear Combination)
주어진 벡터들을 스칼라 값으로 곱하고 더하는 과정
W = αV₁ + βV₂
이때 α와 β는 상수
벡터의 내분
벡터의 내분은 0 < t < 1 일때 주어진 두 점을 특정 비율(1 - t : t)로 나누는 과정을 말하며 다음과 같이 정의한다.
p = (1 - t)a + tB
이를 변형하면 다음과 같다
p = a + t(b - a)
활용
- 선형보간
내분을 통해 시작지점에서 목표지점으로 부드럽게 이동시킬 수 있다.
static void Main()
{
Vector startPoint = new Vector(0, 0);
Vector endPoint = new Vector(10, 10);
float duration = 2.0f; // 이동 시간 (초)
// 보간 비율 초기화
float t = 0.0f;
int frameRate = 30; // 프레임 속도 설정 (FPS)
// 루프 시작
while (t <= 1.0f)
{
// 선형 보간 계산
Vector currentPosition = Lerp(startPoint, endPoint, t);
// t 업데이트
t += (1.0f / frameRate) / duration;
// 프레임 대기
Thread.Sleep(1000 / frameRate);
}
}
static Vector Lerp(Vector a, Vector b, float t)
{
float x = (1 - t) * a.X + t * b.X;
float y = (1 - t) * a.Y + t * b.Y;
return new Vector(x, y);
}
- Lerp 함수 매개변수
- a: 시작 점 (첫 번째 점).
- b: 끝 점 (두 번째 점).
- t: 보간 비율
- 계산과정
- t의 값을 시간에 따라 증가시키며 Lerp함수를 통해 좌표를 계산하면 다음과 같이 이동한다.
반응형
'Math' 카테고리의 다른 글
[Math] 선형 변환 (0) | 2024.11.21 |
---|---|
[Math] 스팬과 선형종속 (1) | 2024.11.15 |
[Math] 행렬(Matrix) (0) | 2024.11.08 |
[Math] 벡터의 내적(Dot Product)과 외적(Cross Product) (0) | 2024.09.30 |
[Math] 벡터 (Vector)와 스칼라(Scala) (1) | 2024.09.30 |