벡터의 내적은 두 벡터사이의 각도를 알아낼때 주로 사용한다.
그렇다고 내적을 해서 나온값이 두 벡터사이의 각도값이 아니다.
벡터의 내적은 Dot Product라고도 불리며 두 벡터의 곱으로 스칼라 값을 가져올수 있고
해당 스칼라값을 ACos(theta)에 사용하면 두벡터의 사이각을 가져올 수있다.
Vector2.Dot()를 활용해보기 위해 간단한 예제 코드이다.
using UnityEngine;
public class VectorAngle : MonoBehaviour
{
public Vector2 v1 = new Vector2(1, 0);
public Vector2 v2 = new Vector2(0, 1);
void Start()
{
float dotProduct = Vector2.Dot(v1, v2);
// .magnitude : 해당 벡터의 스칼라값(크기)를 반환함
float magnitude1 = v1.magnitude;
float magnitude2 = v2.magnitude;
// dot내적값 = A크기 * B크기 * Cos(세타)
// Cos(세타) = dot 내적값 / A크기 * B크기 로 식변환
float cosAngle = dotProduct / (magnitude1 * magnitude2);
// 구한 각도값을 이용하여 Acos에 넣고 사용
float angleInRadians = Mathf.Acos(cosAngle);
//라다안으로 반환하기에 Rad2Deg 사용
float angleInDegrees = angleInRadians * Mathf.Rad2Deg;
}
}
이것으로 해당 벡터의 각도 값을 알아 낼 수 있다.
'내일배움캠프_Unity_6기 > TIL(Today I Learend)' 카테고리의 다른 글
TIL : 2024-10-21(월) :: 제네릭을 사용하는 의미 (0) | 2024.10.21 |
---|---|
TIL : 2024-10-18(금) :: 외부에서 데이터를 불러오는 전략(개인생각 정리) (0) | 2024.10.18 |
TIL : 2024-10-16(수) :: Lerp,Slerp 사용법 / 제네릭 클래스는 컴포넌트로 사용 할 수 없다. (0) | 2024.10.16 |
TIL : 2024-10-15(화) :: TMP에서 한글 폰트로 쓰기 , 스크립트에서 사용하기 (0) | 2024.10.15 |
TIL : 2024-10-14(월) :: C# 메모리구조 , 비트연산자와 레이어마스크 (0) | 2024.10.14 |