line->transform_z는 Z축 변환에 사용될 값을 설정합니다.
c
line->transform_z = max((fdf->map->max_z - fdf->map->min_z), \
max(fdf->map->max_x, fdf->map->max_y));
이 코드는 다음과 같은 작업을 수행합니다:
Z축의 범위 계산: (fdf->map->max_z - fdf->map->min_z)
X축과 Y축 중 더 큰 값 선택: max(fdf->map->max_x, fdf->map->max_y)
위의 두 값 중 더 큰 값을 transform_z로 설정
예시
지도의 크기가 다음과 같다고 가정해 봅시다:
X축 범위: 0 ~ 100 (max_x = 100)
Y축 범위: 0 ~ 80 (max_y = 80)
Z축 범위: -10 ~ 50 (min_z = -10, max_z = 50)
이 경우, 계산 과정은 다음과 같습니다:
Z축 범위: 50 - (-10) = 60
X와 Y 중 큰 값: max(100, 80) = 100
최종 transform_z: max(60, 100) = 100
따라서 line->transform_z는 100이 됩니다.
의미
이 값은 3D 공간의 선을 2D 화면에 투영할 때 사용됩니다. transform_z를 크게 설정할수록 Z축의 변화가 화면상에서 더 극적으로 표현됩니다. 이 방식으로 계산하면:
지도의 전체적인 형태를 유지하면서 Z축 변화를 강조할 수 있습니다.
X, Y, Z 축의 스케일을 균형있게 조절하여 왜곡을 최소화합니다.
지도의 크기에 관계없이 일관된 시각적 효과를 얻을 수 있습니다.
이러한 접근 방식은 다양한 크기와 높이 범위를 가진 지도를 일관되게 표현하는 데 도움이 됩니다.
'C Language' 카테고리의 다른 글
pivoting 상세설명 (0) | 2025.02.06 |
---|---|
카메라 초기 설정 (0) | 2025.02.01 |
등각법(isometric) 과 원근법(perspective) 계산 (0) | 2025.02.01 |
그레디언트 컬러 표현 알고리즘 (0) | 2025.01.28 |
bresenham 알고리즘 설명 (0) | 2025.01.28 |