아래쪽 지문은 질문의 내용을 이해하시는대 도움이 될까 해서 올린거구요..
제가 궁금한것은 아래의 지문의
" 아핀 변환의 정의를 다시 상기하면 변환된 점의 좌표는 원래의 점의 좌표에
선형결합으로 표현이 되는 반면 , 이 원근 투영의 경우 좌표값 중의 하나인
z가 분모에 나타나기 때문에 아핀변환으로 나타낼수 없다. "
이부분입니다.
아핀공간에서 선형결합이 아니므로 표현할수 없다라는 부분은
아핀 공간& 유클리드 공간에서는 p = ( x , y , 0)처럼 z = 0인경우
p' 의 x' , y' 무한인 점이 되므로
표현할수 없어
무한인 점이 존재한다라고 하는 투영 공간으로 처리하는것이 라고 생각하고 있는대
제 생각이 맞는지 궁금하네요..
지문
/*원근투영
투영평면이 z = d인 z축에 수직인 평면으로 설정
임의의 점 p = ( x , y ,z)를 투영하여 얻어지는 점 p'=(x',y',z')의
좌표로 구하려고한다.
투영중심(카메라위치 (원점))과 투영하려는 점을 연결한 투영선(직선)은
실수인 매개 변수 t를 사용하여 c(t) = (t*x , t*y , t*z)와 같이 나타낼수
있는데 , 여기서 t값에 따라 어떤 점인지 결정된다.
f(p) = t(p) + v v = 0
c(t) = (t*x , t*y , t*z)
교점의 위체에 해당하는 매개 변수 t0를 계산하면
t0 * z = d -> t0 = d/z //d = 투영평면이 있는 z
t0를 대입하면
투영점 p' = (d*x/z , d*y/z , d)가 됨을 알수 있다.
문제는 어떻게 하면 p'을 4행 4열 행렬과 p의 곱으로 나타낼것인가
하는 것이다.
아핀 변환의 정의를 다시 상기하면 변환된 점의 좌표는 원래의 점의 좌표에
선형결합으로 표현이 되는 반면 , 이 원근 투영의 경우 좌표값 중의 하나인
z가 분모에 나타나기 때문에 아핀변환으로 나타낼수 없다.
문제 해결을 위해
유클리드 공간에서 출발하여 투영공간에 잠시 들렸다가 다시 돌아오는방식
투영공간을 기본좌표계로 사용하면 자연스럽게 행렬을 유도할수 있다.*/
아핀공간 &유클리드공간과 투영공간
Moderator: 류광
-
- Posts: 480
- Joined: 2006-11-04 16:24
- Location: Creaty Networks
- Contact:
행렬 연산은 16 * 16 개의 인자가 합성되는 연산입니다.
위의 경우엔 딱 2개의 인자를 구하려 하고 있고, 그것을 따로 구할 식이 있으므로,
직접 연산하는 방식이 훨씬 빠를 것입니다.
위의 경우엔 딱 2개의 인자를 구하려 하고 있고, 그것을 따로 구할 식이 있으므로,
직접 연산하는 방식이 훨씬 빠를 것입니다.
세상이 기다리는 나만의 SHOW!
----------------------------------------------
Zeprod 홈 : http://Zeprod.org
Project. Creaty : http://Creaty.net/
Creaty 게임제작 커뮤니티 : http://Creaty.net/game/
----------------------------------------------
----------------------------------------------
Zeprod 홈 : http://Zeprod.org
Project. Creaty : http://Creaty.net/
Creaty 게임제작 커뮤니티 : http://Creaty.net/game/
----------------------------------------------
-
- Posts: 45
- Joined: 2009-03-23 17:21
아핀공간의 정의에 따라...
처음 질문은... 선형 대수에 관련 된 문제라...
변환행열로 만들어지는 공간이 아핀공간이 아니라는 정도만 이해하면 될듯 합니다.
책을 안 읽어서 정확히 어떤 내용인지 모르겠지만, 아핀공간의 계산 식 들을 쓸 수 없다는 정도의 얘기인듯..
두번째 질문은...
앞의 행열은.. 동차 좌표계로만 변환...
뒤의 행열은.. 화면 좌표계로 변환... 입니다..
변환행열로 만들어지는 공간이 아핀공간이 아니라는 정도만 이해하면 될듯 합니다.
책을 안 읽어서 정확히 어떤 내용인지 모르겠지만, 아핀공간의 계산 식 들을 쓸 수 없다는 정도의 얘기인듯..
두번째 질문은...
앞의 행열은.. 동차 좌표계로만 변환...
뒤의 행열은.. 화면 좌표계로 변환... 입니다..
정영구