이제 남은 것은 중첩된 for 루프 내부에서 일어나는 일뿐입니다
r1sin θ 및 r1cos θ
2D 그래프에서 원을 만들 때 사용됩니다
그리고 r2 원 사이가 겹치지 않도록 거리를 유지합니다
그럼, r2 > r1 r2이 원점에서 원의 중심으로 시작하기 때문입니다
이제 압도적인 행렬 곱셈을 수행하기 위해 단일 행을 생성하겠습니다
C에서
자바에서
이제 원과 도넛의 회전에 도움이 되는 3개의 행렬 Ry, Rx, Rz를 만듭니다
자바에서
C에서
앞서 생성한 곱하기 함수를 사용하면 회전하는 도넛 좌표를 얻게 됩니다
C에서
자바에서
Nz 5(카메라와의 거리)의 역수인 reciNz를 만듭니다
screen_height / 2는 11이어야 했지만 지금은 12로 하겠습니다
30과 15는 무엇입니까? IDK
그리고 reciNz를 곱하는 거죠, 왜요? IDK
도넛 코드에는 풀리지 않은 미스터리가 너무 많습니다
이제 3D로 만들려면 어느 정도는 빛이 나야 합니다
그러려면 다음을 찾아야 합니다
N = Ny - Nz
- 2 sinB cosψ cosθ
- 2 sinB cosψ
2 cosB sinA sinф
2 cosA sin ψ
N은 0에서 √2 사이입니다
이제 N에 8을 곱하면 최대 11이 됩니다
휘도로 인쇄하기 위해 가장 낮은 휘도에서 가장 높은 휘도까지 문자 배열을 만듭니다
또는
이제 마지막 부분
다음 사항을 확인하세요.
x < 화면 너비
y < 화면 높이
reciNz > z버퍼[0]
그렇다면
L이 음수인 경우 charOpts[0]/마침표(.)를 사용하세요.
위 내용은 귀가 늙어가는 도넛을 설명하다 Part-3의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!