난 당신이 azimuth
, elevation
324, 133-zmod
-0.9로 설정하면, '7 × 7 대신 10 × 10 만 하나의 점을 격자를 0에서 xmod
을두고 변경하는 것이 발견 오작동. 이와 오작동 포인트, 우리가 가진 :
= 48
i
, j
= 3
x0
= 7.0 y0
= 0.0, z0
= 6.1
x1
= -0.31273127, y1
= 5.4544506, z1
= -7.5074077,
near
= 6.0 nearToObj
= 1.5,
,691,363 바로 다음 두 줄 전에210
:
x1 = x1 * near/(z1 + near + nearToObj);
y1 = y1 * near/(z1 + near + nearToObj);
여기서 중요한 것은 z1 + near + nearToObj
이 영하 넘은 것입니다. 위의 두 줄에 의해 계산 된 x1
및 y1
의 값의 부호가 0 이하로 변경되면 변경됩니다. 이 기호 변경으로 인해 눈금이 잘못 표시됩니다.
저는 3D 그래픽 전문가가 아닙니다.하지만이 결과는 카메라 뒤에 숨어 들어서 문제의 점을 그려 볼 수 없다고 생각합니다. 이 문제를 해결하는 가장 좋은 방법은 내가 가진 것보다 3D 그래픽에 대한 지식이 더 필요하다는 것입니다.
다른 답변은 완전히 잘못되어 삭제했습니다.나는 자바 2D 그래픽 API는 16 비트 정수를 사용하는 일을 포장했다 항에가는 경우에, 나는 적어도
g.drawLine(30, 30, 60, 60);
및
g.drawLine(30, 30, 60 + 65536, 60 + 65536);
이 동일한 출력을 생성하는지 확인하기 위해 시도 할 수 . 그들은하지 않습니다.
@Legend 구체적으로 "훼손"이란 무엇입니까? 나는 당신의 코드를 컴파일하고 실행 시켰지만, 특별히 끔찍한 것을 보지 못했다. – CajunLuke
@CajunLuke 100 X 100 그리드에서 매우 잘 보이는 절단은 거의 사용하기가 힘듭니다. 원본 위에 거의 평행 한 격자를 만듭니다. –
Heh, 출력을 생성해야한다면 추가 작업이 필요합니다. :) 어쨌든, 업데이트는 _great_, upvoted입니다. :) – sarnold