Cyn.thi.s
Cyn.thi.s Programming
Cyn.thi.s
전체 방문자
오늘
어제
  • 분류 전체보기
    • Programming
      • Visual Studio
      • Data Structure & Algorithm
      • C, C++
      • C#
      • Direct X
      • Unity Engine
      • Unreal Engine
      • Game-Math
    • Project
      • Direct X
      • Unity
      • Unreal
    • Life

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • unity
  • 벡터 내적 #
  • unreal
  • 3d 백뷰
  • 투영 벡터
  • 언리얼 클래스 명 수정
  • Precompiled Header #C++ #C
  • 2d 아케이드
  • UE4
  • Ue4 Camera Shake
  • UE5
  • 3차원 회전 행렬 구하기 #오일러 회전 #짐벌락 현상
  • 언리얼 카메라 쉐이크
  • 백페이스 컬링 #Back Face Culling #후면 폴리곤 제거 #은면 제거
  • Class Naming Change
  • 코옵
  • Linear Transformation #Matrix #선형변환 #행렬
  • SoftRenderer
  • NDC
  • 구글플레이

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Cyn.thi.s

Cyn.thi.s Programming

벡터 내적 공식 유도
Programming/Game-Math

벡터 내적 공식 유도

2019. 12. 18. 00:53

-머릿말-

내적은 프로그래밍에 있어 가장 많이 쓰이고 중요한 연산중 하나이다.

최근에 백페이스 컬링을 위해 내적 연산을 사용했었는데, 이 외에도 정말 많은 연산에 사용된다. 

오늘은 벡터 내적 공식 유도를 주제로 포스팅 한다.

내적 증명

간단하게 위 사진이 내적 증명의 전부인데, 

핵심은 제 2코사인 법칙을 통해 증명이 된다는 점이다. 

제 2 코사인 법칙을 설명하려면... 제 1코사인 법칙부터 설명해야하기에 

그부터 설명해보겠습니다.

 

제 1 코사인 법칙 

A->D 수선의 발을 내린 직각 삼각형

삼각형 CBA의 꼭짓점 A에서 변 BC에 직교하게끔 수선의 발을 내린 점 D를 만들었다고 가정한 후

이때, CD와 BD의 길이를 구해보자면, 

CD = CA cosC , BD = AB cosB가 됩니다.

BC = CD + BD이므로, 

BC = CA cosC + AB cosB라고 할 수 있겠지요. 이를 조금 단순화 하기 위해 

BC = a, CA = b, AB = c라고 하면, 

a = b cos C + c cos B라고 나타낼 수 있는데 이를 제 1 코사인 법칙이라고 합니다.

이는 각A가 예각이던 직각이던 둔각이던 성립하며, 

마찬가지로 위의 삼각형에서 b = c cosA + a cos C, c = a cos B + b cos A도 성립하게 됩니다. 

 

 

제 2 코사인 법칙 

제 1 코사인 법칙

제 1 코사인 법칙에서 

 

위와 같이 양변에 결과값을 곱해준 다음 

으로 연산을 해봅시다. 이때

a제곱 - b제곱부터 우선 연산을 했을 경우 

 

위와 같은 결과가 나오게 됩니다. 

마지막으로 a제곱을 기준으로 이항해주면,

제 2 코사인 법칙

란 결과로 제 2 코사인 법칙을 설명할 수 있는데 

이를 통해 

내적 증명

내적을 증명 할 수 있게 됩니다. 

저작자표시 (새창열림)

'Programming > Game-Math' 카테고리의 다른 글

평면의 방정식과 D의 의미?  (0) 2019.12.18
투영 벡터 공식 유도  (0) 2019.12.18
카메라의 뷰 좌표계와 LookAt 행렬 유도  (0) 2019.12.18
3차원 회전 행렬 구하기 by 오일러각 Input  (1) 2019.12.18
선형 변환(Linear Transformation)과 행렬(Matrix)의 관계  (0) 2019.12.08
    'Programming/Game-Math' 카테고리의 다른 글
    • 평면의 방정식과 D의 의미?
    • 투영 벡터 공식 유도
    • 카메라의 뷰 좌표계와 LookAt 행렬 유도
    • 3차원 회전 행렬 구하기 by 오일러각 Input
    Cyn.thi.s
    Cyn.thi.s
    Cyn.thi.s Game Programming Life

    티스토리툴바