gpt4 book ai didi

vb.net - Visual Basic .Net 3D 引擎

转载 作者:行者123 更新时间:2023-12-04 06:40:14 25 4
gpt4 key购买 nike

这更像是一个数学问题而不是编程问题。

我使用 Visual Basic .Net 创建了一个非常基本的 3D 引擎。它在屏幕上显示带有附加 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

最佳答案

您想绘制 z>0 的所有内容,因为低于零的所有内容都在相机后面,而 Z == 零,这会爆炸,因为您不能除以零。所以我会这样做:('scuse c#,但无论如何这应该是一样的)

y = z > 0 ? (point.y / z) + offset.y + camera.y : 10000;
x = z > 0 ? (point.x / z) + offset.x + camera.x : 10000;

其中 10000 值足够大,不会出现在您的屏幕上。

如果您的 z 轴指向相反的方向,您需要这样做:
y = z < 0 ? -1*(point.y / z) + offset.y + camera.y : 10000;
x = z < 0 ? -1*(point.x / z) + offset.x + camera.x : 10000;

关于vb.net - Visual Basic .Net 3D 引擎,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4344556/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com