2D 공간으로 투영 된 구는 항상 타원을 생성합니까?


22

내 직감은 어떤 구가 2D 공간으로 투영 될 때 결과는 항상 수학적으로 타원 (또는 축퇴 된 경우의 원)이된다는 것입니다.

과거에 나는 내 자신의 그래픽 프로그래밍을 적극적으로 수행하고 있었고 다른 사람들과 함께이 문제를 제기했을 때, 내가 틀렸다는 것을 단호하게 생각했다. 내가 정확하게 기억한다면 그들은 결과가 모호한 "계란 모양"일 수 있다고 생각했습니다.

누가 맞았습니까?


이미 제출 된 답변이 하나이므로 질문을 완전히 바꾸고 싶지는 않지만 몇 년 동안 해당 분야에 익숙하지 않아 중요한 세부 정보를 생략했습니다.

프로젝션이 선형 응용 인 투시 프로젝션 에 대해 구체적으로 묻고 자했습니다 .

다른 프로젝션은 물론 많은 용도에 흥미가 있으므로이 시점에서 제거하지 않기를 바랍니다. 그러나 답변이 가장 두드러진 부분으로 투시 투영을 가질 수 있다면 좋을 것입니다.


3
원근 투영법을 가정하면 AFAICS는 관측점 수평선에 의해 형성된 '경계'가 (절두 된) 원뿔이 될 것이므로 대부분의 투영법은 원뿔 섹션이 될 것입니다 : en.wikipedia.org/wiki/Conic_section . 따라서 타원도 가능하지만 유일한 것은 아닙니다.
Simon F

1
이 경우 나는 ... 대답에 내 의견을 촉진
사이먼 F에게

1
구속 조건을 추가해야합니다. 어안은 투시 투영이며 타원을 얻지 못합니다. 필요한 제약은 선형성입니다.
v.oddou

1
차라리 "투영이 선형 응용 프로그램"과 같은 것을 말하고 싶습니다. "선형 변신"과 같은 몇 가지 간단한 용어가있을 수 있지만 오랫동안 잊어 버렸습니다.
v.oddou

1
이 때문에 여기에 추가 :) 이니 Quilez의 분석 구 프로젝션,이 스레드에서 어디를 가야한다 shadertoy.com/view/XdBGzd
Mikkel Gjoel

답변:


18

원근 투영과 구 외부의 시점을 가정하면, 시점과 수평선에 WRT를 형성하는 구의 원에 의해 형성된 '경계'는 원뿔이됩니다.

(평면에서) 투시 투영을하는 것은 원뿔 단면을 생성하는 평면과이 원뿔을 교차시키는 것과 같습니다. 참고로, 퇴행하지 않은 네 가지 사례가 Wikipedia의이 이미지에 나와 있습니다.여기에 이미지 설명을 입력하십시오

타원 / 원은 가능성이 있지만 유일하게 무한한 포물선이나 쌍곡선이 아닙니다 (비행기가 눈을 통과하면 경우가 변할 수 있습니다).


1
나는 당신의 주장의 절대적인 논리에도 불구하고 결과가 포물선이나 쌍곡선이 될 수 있다고 상상할 수 없습니다. 어떤 종류의 레이아웃이 이러한 레이아웃으로 이어질지 명확히하는 단어가 좋습니다. 내가 뇌를 돌아 다닐 수있는 최선의 방법은 "어쨌든 무한대와 관련이있는 것"입니다.
hippietrail

3
어쩌면 동등한 것이 도움이 될 수 있습니다. 원뿔형 빔을 만드는 토치 (북미 지역의 손전등)를 들고 있고 어두운 빈 (무한) 창고에 있다고 상상해보십시오. 바닥에 횃불을 비추면 타원이 보입니다. 이제 토치 축을 수평 으로 점차 기울입니다. 타원은 보 자체의 맨 위 '가장자리'가 수평, 즉 바닥과 평행이 될 때까지 점점 길어집니다. 이제 투영은 포물선이며 영원히 뻗어 있습니다. 더 기울이면 쌍곡선이 형성됩니다.
Simon F

1
@hippietrail : 카메라 전면의 뷰 평면을 사용하면 구의 적어도 일부가 초점과 뷰 평면 사이에 있으면 포물선이나 쌍곡선으로 끝날 수있는 유일한 방법 입니다.
Ilmari Karonen

@IlmariKaronen :이 문맥에서 "초점"은 무엇을 의미합니까? 눈이 초점을 맞추고있는 점은? 소실점? (저는 12 세 또는 13 세의 3D 원근 회전 및 투영법을 가르쳤으며 수학 및 용어에 유창하지 못했습니다.)
hippietrail

이러한 맥락에서 @hippietrail Focal point는 원뿔의 정점이 될 것입니다. 원근법의 "핀홀", 효과적으로 핀홀 카메라 모델. (PS는 그 이름이 "이상한 아가씨를 만나는 것을 의미합니까? 그녀는 나를 긴장하게 만들었습니다."?)
Simon F

14

이것은 @SimonF의 대답에 대한 긴 의견과 비슷합니다.

모든 원뿔 절단, 쌍곡선, 포물선 및 타원이 가능합니다. 3D 엔진에서 초광각 카메라로 이미지를 그려 테스트하기가 쉽습니다. 피사체가 초점의 중앙에 있지 않도록 카메라를 30도 각도로 회전시킵니다. 그런 다음 점차적으로 카메라를 구에 가깝게 이동하십시오.

여기에 이미지 설명을 입력하십시오

이미지 1 : 약간 옆으로 보이는 구에 매우 가까이 비행. 우리가 갑자기 표면 형태를 뚫는 방법에 주목하십시오.

구가 매우 가까워 졌을 때 다시 캡처하려면 넓은 이미지에서 그림을 빠져 나가 포물선 또는 쌍곡선 일 수 있습니다. 그러나 모양은 프레임을 나가기 만하면됩니다.


1
실제로 좋은 점은 애니메이션이 다양한 결과의 음영을 변경할 수있는 경우입니다. 타원은 흰색, 녹색 (포물선은 '한 프레임'), 빨간색은 쌍곡선을 말합니다. :-)
Simon F

2
@SimonF 나는 이것에 대해 생각했다. 나는 Nathan Reed와 같은 것을 계획하고 있었다. 그러나 나는 조금 서두르고 있었고,이 렌더링을 끝내는 것이 운이 좋았습니다. 처음에는 쌍곡선이 전혀 존재할 수 있는지에 대해 약간 회의적이었습니다. 그러나 지금은 분명해 보입니다.
joojaa

13

프로젝션 시스템은 3D 모양을 평면 (2D) 모양으로 변환하는 데 사용됩니다.

프로젝션 시스템의 유형에 따라 사각형, 파이, 타원, 원과 같은 다른 결과와 모양이 구에서 생성 될 수 있습니다.

프로젝션 시스템은 생성 된 결과의 특성으로 분류 할 수 있습니다.

계속하기 위해, 우리가 전에 본 지구 구체와 넓은지도에서 매우 감동적이고 일반적인 예를 사용하고 싶습니다.

당신의 구체가 지구라고 가정하십시오!

지구를 구체로, 지구의 구형으로 만든 평면 세계지도로 상상해보십시오. 대부분의 세계지도에서 극지방에 가까운 국가는 실제로 아프리카 대륙의 1/14 인 아이슬란드와 같이 실제로 실제보다 훨씬 커지고 있지만지도는 모두 동일하게 표시됩니다. 이것은 하나의 차원을 생략 할 때 모양의 한 특성을 잃기 때문입니다.

다른 프로젝션 시스템과 결과

이것은 거리, 각도 또는 면적을 보존하지 않는 평면 투영입니다. 빨간색 원은이 투영의 결과 인 과장 정도를 나타냅니다.

먼저

동등한 지역, 이것에서 아이슬란드와 아프리카를보고 위와 비교하십시오.

둘째

프로젝션 시스템은 보존 대상에 따라 분류 할 수 있습니다.

  1. 동일한 지역.
  2. 왜곡없이 형태를 유지하는 균일 한 각도 (conformal)
  3. 동등한 거리.
  4. ......

컨 포멀 프로젝션은 모양을 유지하지만 영역은 유지되지 않습니다 (위의 첫 번째 그림). 이것은 많은 응용 분야에서 사용되는 가장 유명한 프로젝션 시스템입니다. 당신의 구체는 여기 사각형입니다!


따라서 구가 항상 타원으로 투영된다고 말할 수는 없습니다. 위에서 언급했듯이 구는 직사각형 (첫 번째 모양)으로 투영되거나 타원이지만 특성 (등각, 거리, 모양, 면적-다음 그림 참조)이 다르거 나 구를 원추형으로 투영 할 수도 있습니다. 원뿔형을 열어 파이를 만드십시오.

위의 각 투영 시스템에는 인터넷에서 찾을 수있는 반복 또는 직접 알고리즘을 적용 할 수 있습니다. 나는 당신이 묻지 않았기 때문에 공식과 변형에 대해 이야기하지 않았습니다. 이 답변이 도움이 되길 바랍니다.

제삼


원근법 투영에서 타원 만 구에서 생성됩니다

수평면으로 원뿔을 자르면 원이 만들어집니다.

비스듬한 평면으로 절단하면 절단 각도에 따라 타원 또는 쌍곡선이되는 경사가 생성되며이 각도가 수직으로 기울어지면 포물선이 생성됩니다 (그림 참조).

타원

아마도 이것은 분명하지만 방정식을 살펴보십시오.

간단히하기 위해 모든 형상이 원점 중심이라고 가정했습니다.

방정식 :

x2+y2=r2

x2/a2+y2/b2=1

x2/a2y2/b2=1

y2=4ax

형태학 :

타원에는 분명히 두 개의 초점이 있습니다. 특별한 종류의 줄임표 인 원에는 두 개의 초점이 있지만 일치합니다. 그러나 쌍곡선은 동일한 줄임표의 축 거울이며 두 초점도 있습니다. 포물선에는 하나의 초점이 있지만 실제로는 두 번째 초점이 무한대이기 때문에 두 개가 있습니다.

결론

모든 것이 타원이지만, 특수한 경우를 설명하기 위해 이름을 다르게 지정할 수도 있지만, 게임에서 구현하려면 타원 방정식을 가정하면 충분합니다. 둘 중 하나가 옳을 수 있기 때문에 어느 쪽이 옳은지 알 수 없습니다.


2
답변 주셔서 감사합니다. 투시 투영에 대한 내 부록을 참조하십시오. 내 원래의 말로이 감독에 사과드립니다.
hippietrail

2
예, 나는 원래 질문에서 그것을 다루려고 노력했습니다. 점과 선 세그먼트는 다른 타원도 타원이라고 생각합니다.
hippietrail

3
@hippietrail : 지구는 실제로 투시 투영에도 훌륭한 예입니다. 평범한 사진을 실외에서 촬영하여 카메라를 수평선을 향하게하면 (렌즈에 왜곡이없고 지구가 거의 완벽한 구라고 가정) 그림의 지구 이미지가 (섹션)이됩니다 매우 넓은 쌍곡선.
Ilmari Karonen

1
@IlmariKaronen : 와우는 그것을 명확하게하고 그 자체의 답을 얻을 가치가 있습니다! 포물선을 만들 수있는 버전이 있습니까?
hippietrail

1
@hippietrail 나는 답변의 끝에 설명을 추가했습니다. 편집 된 질문의 새로운 측면에 대답 할 수 있기를 바랍니다. 보완 해 주셔서 감사합니다.
Iman

11

SimonF의 추론은 기본적으로 저를 설득했습니다. 다음과 같은 구체가있는 UE4 레벨을로드했습니다.

여기에 이미지 설명을 입력하십시오

카메라의 FOV를 160도까지 설정하여 원근 왜곡이 많이 발생하고 구가 이미지의 모서리 근처에 오도록 배치했습니다.

여기에 이미지 설명을 입력하십시오

그런 다음 이것을 Inkscape로 가져 와서 타원 도구를 사용하여 그렸습니다.

여기에 이미지 설명을 입력하십시오

놀람! 완벽하게 맞습니다!


1
매우 예쁘다! 포물선과 쌍곡선을 다루는 것에 대해 어떻게 생각하십니까?
hippietrail

2
@hippietrail 불행히도, 벡터 아트 프로그램에는 타원 도구와 같은 포물선과 쌍곡선 도구가 없으므로 조금 더 어려울 것입니다 ... :)
Nathan Reed

@NathanReed는 확실하지만 일반적인 그래프 도구를 가지고 있습니다 (나를 얻을 수 없다면) 일반적인 포물선을 그리며 크기 / 회전을 맞 춥니 다.
joojaa

-1

구를 한 번 슬라이스 할 때 형성된 포물선 또는 쌍곡선이 없습니다. 원인 특수한 경우를 제외하고는 타원이 없으며 결과는 항상 원입니다. 구를 기울어 진 평면에 투영하면 타원이 생깁니다.


1
다른 답변은 타원 이외의 모양이 가능하다는 것을 나타냅니다. 왜 틀릴 수 있는지 설명 할 수 있습니까?
Simon F
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.