gpt4 book ai didi

c# - 透视 3D 对象

转载 作者:行者123 更新时间:2023-11-30 18:41:05 30 4
gpt4 key购买 nike

我正在将我们的一个旧应用程序从 vb6 更新到 c#,在此过程中必须重新创建原始程序员设计的自定义控件。该控件简单地获取对象的尺寸,矩形或圆锥形,并在 3D 中放置对象的轮廓草图(我认为在技术上是 2.5D)。当然,控件或算法的代码无处可寻。

我事先对此一无所知,除了视角之外,我几乎复制了所有内容。我正在使用我在此处的另一个答案中找到的代码。

        }
double w = 400;
double h = 250;
double t = 0.6; // tilt angle
double X = w / 2 - x;
double Y = h / 2 - y;
double a = h / (h + Y * Math.Sin(t));
double u = a * X + w / 2;
double v = a * Y * Math.Cos(t) + h / 2;
}

我需要帮助的最后一件事情是将视角从左到右旋转大约 30 度,这样我就不会直视了。

感谢您的帮助。

最佳答案

正如评论者所说:您应该使用矩阵让您的生活更轻松。

旋转可以通过将 2 个矩阵、旋转矩阵和透视矩阵相乘来轻松完成:

// We don't have a view matrix here
Matrix4x4 modelProjection = Matrix4x4.Perspective(400, 250, Math.PI / 4) * Matrix4x4.RotationX(degree);
// Get a specifics point position, use x and y to determine the screen position and z for the z-order
Vector3 screenPosition = modelProjection * myPosition; // myPosition is a Vector3

要运行代码,您必须做一些事情:实现 C# 矩阵,或从其他任何地方获取它。 Here是实现矩阵的极好来源。

关于c# - 透视 3D 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7273460/

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