等角投影:我的数学出了什么问题?

发布于 2024-08-19 11:34:31 字数 487 浏览 5 评论 0原文

我有一道等角投影的数学问题。我读过一篇文章:轴测投影 - 技术概述。对于等角投影部分,它给出了将 x 部分的 3D 点转换为 2D 点的数学公式,公式为:

x' = ( x − z ) cos(30);

但我还检查了 wiki 的 等距投影 所以我使用wiki给出的旋转矩阵,自己计算

x' = x*cos(beta) - z*sin(beta)

beta是由wiki定义的(Y轴旋转角度,应该是45)。那么我的数学有什么问题吗?或者关于等角投影还有什么我不知道的吗?

I have an math problem in Isometric projection. I have reading an article: Axonometric projections - a technical overview. For the Isometric projection part, it give an mathematical formula for conversion 3D point into 2D point for the x part the formula is:

x' = ( x − z ) cos(30);

But i also check for wiki for Isometric Projection so i use the rotation matrices which the wiki giving, calculate myself

x' = x*cos(beta) - z*sin(beta)

The beta is define by the wiki(Y axis rotation angle, and it should be 45). So what's wrong with my math? Or is there something that i don't know about the Isometric projection?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

独自唱情﹋歌 2024-08-26 11:34:31

您确定您的 cossin 采用度数而不是弧度吗?

// C/C++ code

#define PI 3.141592654
static const float PI_RADIANS = PI / 180.f;

inline float DegToRad(float a_Degrees)
{
   return (a_Degrees * PI_RADIANS);
}

inline float RadToDeg(float a_Radians)
{
   return (a_Radians / PI_RADIANS);
}

Are you sure your cos and sin take degrees and not radians?

// C/C++ code

#define PI 3.141592654
static const float PI_RADIANS = PI / 180.f;

inline float DegToRad(float a_Degrees)
{
   return (a_Degrees * PI_RADIANS);
}

inline float RadToDeg(float a_Radians)
{
   return (a_Radians / PI_RADIANS);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文