Делаю 3d движок, вроде рисуется всё нормально, но при определённом угле или позиции, появляется вот такой баг -
вот кусочек кода поворотов и приврашения из 3d в 2d -
x,y,z=p
#OBJECT ROTATION
x,z=rotate2d((x,z),(math.sin(model.rot[1]),math.cos(model.rot[1])))
y,z=rotate2d((y,z),(math.sin(model.rot[0]),math.cos(model.rot[0])))
x,y=rotate2d((x,y),(math.sin(model.rot[2]),math.cos(model.rot[2])))
#CAMERA POS
x-=camera.pos[0]-model.x
y+=camera.pos[1]-model.y
z-=camera.pos[2]-model.z
#CAMERA ROTATION
x,z=rotate2d((x,z),camera.rotY)
y,z=rotate2d((y,z),camera.rotX)
x,y=rotate2d((x,y),camera.rotZ)
verts.append((x,y,z))
f=fov/z if z else fov; x=x*f; y=y*f
if z>0 and x>0 and x<w and y>0 and y<h: on_screen=True
pns.append((x,y))
Можно ли это пофиксить?