CS/그래픽스

[홍정모의 그래픽스 새싹코스 Part1] 구 만들기

겜도리도리 2023. 12. 6. 00:06
반응형

앞서

이 포스팅은 홍정모의 그래픽스 Part1을 수강하고 작성한 내용입니다.

강의의 세부 코드는 첨부하지 않고, 결과와 이론 위주로 포스팅했습니다.

구와 직선의 방정식

구를 스크린 좌표에 나타내기 위해서는 먼저 구의 방정식을 알아야한다.

x를 구 위의 점, c를 중점, r을 반지름이라고 했을 때 구의 방정식은 다음과 같다.

그리고 점 x를 지나고 o에서 시작하는 방향벡터가 u인 직선의 방정식은 다음과 같다.

 

구와 직선의 교점관계

먼저 구와 직선이 만날 때는 3가지 관계로 분류할 수 있는데

1. 만나지 않는 경우

2. 한 점에서 접하는 경우

3. 두 점에서 만나는 경우가 있다.

 

직선과 구의 교점을 x라고 하자. 구의 방정식 x에 직선의 방정식을 대입하면 다음과 같다.

 

내적을 전개하면 아래와 같다.

 

여기서 a, b, c를 각각  다음과 같이 정리하면

d에 관한 2차 방정식으로 식을 정리할 수 있다.

 

근의 공식에 따라 d값은 위와 같이 결정되고

판별식 값이 0보다 크다면 두 근

0과 같다면 중근

0보다 작다면 허근을 가지게 되는데 각각 두 점에서 만남, 접함, 만나지 않음을 뜻한다.

 

 

결과

거리에 따라 다르게 보이는 구를 만들 수 있었다.

다만 원근이 적용되지는 않았는데, 이는 다음 강의에서 다룬다고 한다.

 

출처

https://en.wikipedia.org/wiki/Line%E2%80%93sphere_intersection

반응형