본문 바로가기
3D Algorithm

비율(ratio)을 이용한 3차원 점 이동 - 두번째

by DarkRock 2024. 9. 25.
반응형

비율을 이용한 점 이동


점 p1(0,0,0), 점 p2(10,0,0), 벡터(1,0,0)를 알고 있을 때, 점 p2를 점 p1까지의 거리의 80%에 해당하는 지점으로 이동해 보도록 하겠습니다.
그림은 아래와 같습니다.

 


그림상으로는 점p1, p2만 주어지면 벡터와 dist는 모두 구할 수 있겠네요. 벡터는 p2-p1, dist는 두 점 거리 계산식이나 벡터 내적으로 구할 수 있습니다. 벡터와 관련된 내용은 아래글 참고하세요.

2024.09.11 - [3D Algorithm] - 벡터 계산과 단위벡터

 

벡터 계산과 단위벡터

벡터(Vector)벡터는 어릴 때 학교에서 크기와 방향을 가진 물리량이라고 배웠습니다. 벡터 계산은 두 점 p1(x1, y1), p2(x2, y2)가 있을 때 벡터 방향이 p1으로 향한다고 한다면 벡터 계산은 v = p1-p2로 합

darkrock.tistory.com

 


벡터와 거리가 구해졌으면, 거리의 80%에 해당하는 p2 위치는 다음식으로 구해집니다.
p2_trans = p2 + (0.8-1.0) * dist *dir

위 식이 이해가 안되신다면, 0.8이 아닌 1을 대입했을 때는 p2_trans가 p2로 나오게 되어 dist를 100% 유지하게 됩니다. 만약에 dist 20%를 더 증가해서 p2를 이동시키고 싶다 하면 0.8 대신에 1.2를 넣어서 계산하시면 됩니다. 이 내용은 내적과 연관이 있습니다. 관련글은 아래를 보시기 바랍니다.

2024.04.24 - [3D Algorithm] - 벡터 내적 외적 계산 공식과 결과 의미

 

벡터 내적 외적 계산 공식과 결과 의미

3차원 공간의 벡터 A = (x1, x2, x3), B = (y1, y2, y3)가 있을 때, - 내적(Inner product, Dot product)은 A⋅B = x1*y1 + x2*y2 + x3*y3 으로 계산할 수 있습니다. 코사인을 이용한 내적 계산 방식은 X의 길이와 Y의 길이

darkrock.tistory.com


위 식을 코드로 표현하면 아래와 같은 형태로 쓸 수 있습니다.

Point p1(0, 0, 0), pl(10, 0, 0), dir(1, 0, 0);
float dist = (p1-p2).length();
float ratio = 0.8
Point p2_trans = p2 + (ratio-1.0)*dist*dir;


비율을 이용한 점이동 다른 글도 있으니 참고하세요.

2024.02.20 - [3D Algorithm] - 비율(ratio)을 이용한 3차원 점 이동

 

비율(ratio)을 이용한 3차원 점 이동

아래 그림을 보시면 파란 점들은 알고 있는 정보이고, 빨간 점은 계산해야 할 점입니다.pl(10,0,0)을 시작점으로 길이 L이 10이고 방향은 dir(1,0,0) 직선이 있습니다. 점 p(12,-10,0)가 있을 때 직

darkrock.tistory.com

2024.02.20 - [3D Algorithm] - 3차원 스케일(Scale)과 비율(Ratio)

 

3차원 스케일(Scale)과 비율(Ratio)

Geometry에서 object의 크기를 조절할 때 스케일(Scale)을 이용할 때가 있습니다. 이때 스케일 수치는 비율을 사용하게 됩니다. 스케일 수치가 1(100%=100/100)이면 object의 현재 크기를 유

darkrock.tistory.com

 

반응형