【问题标题】:Convert 3D coordinate to 2D coordinate using axonometric and isometric projection使用轴测投影和等轴测投影将 3D 坐标转换为 2D 坐标
【发布时间】:2016-12-10 20:30:37
【问题描述】:

我目前正在使用 HTML5 画布在 JS 中开发游戏,我需要将x、y、z 定义的 3D 坐标转换为 x' 和 y' 定义的 2D 坐标两种投影方式:先轴测,后等轴测。

我已经阅读了等距投影的 wiki 页面来查找公式,但我不明白:

维基百科公式:

为什么要使用矩阵旋转,x' 和 y' 2D 结果在哪里?

有人可以给我使用轴测投影将 3D 轴的点转换为 2D 轴的公式,以及使用等轴投影的公式,并为初学者提供数学解释吗?

【问题讨论】:

  • 因为等轴测投影基本上是一个旋转,然后是一个降维(即把结果的z坐标扔掉)。
  • @NicoSchertler 所以公式是x' =(x−z) * cos(30) 和y' = y+(x+z)⋅sin(30) ?
  • 根据Wikipedia,它是x'=(x-z)/sqrt(2) 和y'=(x+2y+z)/sqrt(6),除了比例因子1/2 之外,它看起来与您的等式相似。
  • 谢谢,我如何将此公式应用于任意角度的轴测投影?
  • 只需使用基于旋转的公式并插入您的角度。

标签: math 3d geometry projection isometric


【解决方案1】:

3D 到 2D 等距:

x'=(x-z)/sqrt(2)
y'=(x+2y+z)/sqrt(6)

(基于@NicoSchertler 的评论。他说他是从Wikipedia 那里得到的,但我不知道如何......)

其他轴测图参见:Projecting 3D points to 2D plane

【讨论】:

    猜你喜欢
    • 2021-05-05
    • 1970-01-01
    • 2012-04-15
    • 2017-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    相关资源
    最近更新 更多