【问题标题】:Plot 2d point on 3D plane drawn in 2d在 2d 中绘制的 3D 平面上绘制 2d 点
【发布时间】:2015-12-18 06:23:11
【问题描述】:

我试图在 2d 中绘制的 3d 平面上从 2d 平面绘制一个点。我不确定如何根据视角调整 y 位置。正如您在下面链接的图片中看到的(Stack Overflow 不允许我包含该图片,因为我刚刚注册),如果该点位于矩形的中心点,则从查看时需要稍微向上移动一个角度来解释与观察者的距离。谁能提供一个方程式来帮助?

【问题讨论】:

  • 如果你只需要在矩形的正中心画一个点,画一个连接矩形角的 X,然后在组成的两条线的交点处画一个点X。
  • 我需要在形状的任意位置绘制点。中心点只是为了简化示例。
  • 你了解缩放和平移,以及坐标变换的概念吗?
  • 在某种程度上,是的。但我不是在 3d 中绘制这个。我知道应该有一个方程来绘制 Y 轴上的点以显示为 3d,但我只是没有足够强大的数学背景来弄清楚它。

标签: math 3d 2d equation perspective


【解决方案1】:

假设矩形中的点由 (x,y) 给出,我们在第二张图像中寻找的坐标是 (x', y')。

w = y + y0
y' = k atan(w/h)
r = sqrt(h2 + w2)
x' = k atan(x/r)

其中 k 是整个图像的缩放因子,h 是“平面上方视点的高度”,y0 大致是到对象的距离。

【讨论】:

  • 您可能需要atan2() 将坐标放入右象限。
  • @Lorehead:我自己总是使用 atan2,但我想尽可能简单地回答这个问题。
  • 谢谢。这是有道理的,但不幸的是我没有大部分变量可以使用。我正在制作一个模型,所以我所拥有的只是外部尺寸。我可能会使用您的解决方案,对 k、h 和 y0 进行大量试验和错误
  • @crashton:它不应该花那么多时间。尝试 k=1, h = y0 = 100 开始。
猜你喜欢
  • 1970-01-01
  • 2018-05-29
  • 1970-01-01
  • 2023-04-09
  • 1970-01-01
  • 2015-04-16
  • 2015-05-30
  • 1970-01-01
  • 2012-06-24
相关资源
最近更新 更多