Это скорее математическая проблема, чем проблема программирования.Visual Basic. Net 3D Engine
Я создал очень простой 3D-движок с использованием Visual Basic .Net. Он отображает строки на экране с дополнительной осью z. Двигатель работает, однако, когда часть линии идет ниже 0, она беспорядочна и начинает рисовать линию, инвертированную снова.
Это, как он вычисляет точку:
y = (point.y/z) + offset.y + camera.y
x = (point.x/z) + offset.x + camera.x
Можно ли разработать способ рисовать только часть линии, когда она пересекает Z = 0 ось?
(исходный код) http://www.mediafire.com/?ww77q26ywj3a5ry
Ссылка MediaFire больше недоступна. – 2018-03-07 23:55:19