Недавно я пытался создать в pygame 3D-куб, который можно было бы просматривать, перемещая камеру. Я стараюсь не импортировать какие-либо модули, кроме математических, поэтому я могу оставить это относительно ванильным.
Я заставил куб работать, и теперь у меня есть способ переместить его. вокруг и посмотрите на него, но есть большой визуальный сбой, который меня очень беспокоит. Если вы расположитесь так, чтобы куб находился позади вашего поля зрения, а затем осмотритесь, вы увидите красный каркас куба, даже если вы смотрите в сторону от него.
Почему это происходит ? есть ли способ исправить это без импорта каких-либо модулей?
Мой текущий код показан ниже.
import pygame
import math
pygame.init()
w, h = 400, 400
screen = pygame.display.set_mode((w, h))
cube_vertices = [
[-1, -1, -1],
[ 1, -1, -1],
[ 1, 1, -1],
[-1, 1, -1],
[-1, -1, 1],
[ 1, -1, 1],
[ 1, 1, 1],
[-1, 1, 1]
]
cube_edges = [
(0, 1), (1, 2), (2, 3), (3, 0),
(4, 5), (5, 6), (6, 7), (7, 4),
(0, 4), (1, 5), (2, 6), (3, 7)
]
# Camera settings
camera_pos = [0, 0, -6]
yaw, pitch = 0, 0
move_speed = 0.05
turn_speed = 0.015
# Define projection
def project_vertex(vertex, camera_pos, yaw, pitch):
x_final = vertex[0] - camera_pos[0]
y_final = vertex[1] - camera_pos[1]
z_final = vertex[2] - camera_pos[2]
# Yaw
x_rotated = x_final * math.cos(yaw) - z_final * math.sin(yaw)
z_rotated = x_final * math.sin(yaw) + z_final * math.cos(yaw)
# Pitch
y_rotated = y_final * math.cos(pitch) - z_rotated * math.sin(pitch)
z_rotated = y_final * math.sin(pitch) + z_rotated * math.cos(pitch)
# Avoid division by 0
if z_rotated
Подробнее здесь: https://stackoverflow.com/questions/790 ... -the-camer
Почему линии моего 3D-куба по-прежнему видны, даже если куб находится за камерой в Pygame? ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
3D вращающийся куб с прозрачным окном к фоновому видео (видно только через куб)
Anonymous » » в форуме CSS - 0 Ответы
- 12 Просмотры
-
Последнее сообщение Anonymous
-
-
-
3D вращающийся куб с прозрачным окном к фоновому видео (видно только через куб)
Anonymous » » в форуме Javascript - 0 Ответы
- 12 Просмотры
-
Последнее сообщение Anonymous
-
-
-
3D вращающийся куб с прозрачным окном к фоновому видео (видно только через куб)
Anonymous » » в форуме CSS - 0 Ответы
- 5 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Формы Xamarin — iOS: изображения не видны на реальном устройстве, но видны на эмуляторе
Anonymous » » в форуме IOS - 0 Ответы
- 63 Просмотры
-
Последнее сообщение Anonymous
-