【问题标题】:How can I project a group of points in 3D space onto a 2D plane in Matlab?如何将 3D 空间中的一组点投影到 Matlab 中的 2D 平面上?
【发布时间】:2012-12-01 23:12:17
【问题描述】:

我正在 Matlab 中制作动画:我有 15 个点在 3D 空间中移动。它们的 XYZ 坐标和运动取自运动捕捉数据。我需要从运动“前面”的观察者的角度展示这些点是如何移动的。我现在正在尝试的是创建一个 2D 平面并将其移向点,以便它们最终“投影”到它上面。但是,它不是标准的 X-Y 或 Y-Z 平面,所以我很难弄清楚如何进行这项工作。

我怎样才能让这架飞机做我想做的事 - 或者我应该尝试其他方法吗?

【问题讨论】:

  • 你能更具体地说明你正在尝试什么吗?
  • 您需要一个带有向上矢量和look_at 方向的相机。另外,您需要透视图还是只需要正交图?

标签: matlab 3d coordinates projection


【解决方案1】:

您的目标基本上是实现一个理想的针孔相机,其中针孔成为空间中的一个点。您的每个 3D 点加上“针孔”定义了 3D 空间中的一条线,该线在某个点与您的投影平面相交。看起来有点像这样:

x_1 和 y_1 应该具有相同的长度,即 1,因此 3D 空间中的“x”定义为 x = o_1 + a * x_1 + b * y_1。在您的 2D 投影中,a 和 b 成为您的绘图坐标。

【讨论】:

  • 非常感谢。这可能是一个很大的帮助。
猜你喜欢
  • 1970-01-01
  • 2023-03-08
  • 2017-10-06
  • 1970-01-01
  • 2011-01-30
  • 2018-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多