【问题标题】:Find all points between two given points in 3D using Matlab?使用Matlab查找3D中两个给定点之间的所有点?
【发布时间】:2014-03-13 21:25:52
【问题描述】:

Matlab 中是否有一个函数可以让我获得 3D 中两个给定点之间的直线上的所有点?它在某种程度上类似于 plot3() 函数,但不是将其可视化,而是我想获取这两个点 point1(x,y,z) 和 point2(o,m,n) 之间的所有点,以便我可以使用它们进行计算?我想出了如何在 2D 中做到这一点,但是在 3D 中需要考虑很多方向.. 谢谢

【问题讨论】:

  • 您是在寻找指定坐标之间的点的采样,还是特定数据集中包含的所有点?因为否则你会要求“所有”无限的点。请澄清。
  • 不可数无穷大,我应该补充一下。您确定要所有个吗? :-)
  • 感谢提醒!我实际上只需要整数坐标,尝试了 uint8() 结果但线不再直了:'(有什么想法吗?:)

标签: matlab


【解决方案1】:

这给出了连接点的线,由t 参数化。要在线获得更多点,请减小t 中的间距。

point1=[1 2 3];
point2=[5 5 5];
t=0:.01:1;
C=repmat(point1,length(t),1)'+(point2-point1)'*t

【讨论】:

    【解决方案2】:

    数学不会随着额外的维度而改变。 A 和 B 之间的直线上的所有点定义为:

    (A-B).*x+B

    0<x<1 是 A 和 B 之间的段

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-15
      • 1970-01-01
      • 1970-01-01
      • 2022-08-14
      • 1970-01-01
      相关资源
      最近更新 更多