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

标签 vb.net 3d

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

我使用 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 == 0 的地方,这会爆炸,因为你不能除以零。所以我会这样做:('scuse the 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/

相关文章:

javascript - 获取 A 框架中实体的方向向量

java - 使用 3d 变换矩阵

vb.net 编译错误 'abc' 在命名空间 'xyz' 中不明确

arrays - 检查字符串数组是否包含不带循环的非空字符串

c# - LINQ - 嵌套计数问题

c# - 在不知道 exe 位置的情况下启动带有命令行参数的文件?

testing - 在哪里可以获得样本 3d 环境?

java - 我应该为我的游戏选择 3D 吗?如果是这样,有多远,有什么好的教程吗?

Jquery .css() 方法不适用于 css 函数

mysql - 在一个查询SQL中删除两个表中的记录