如何在Matlab中从4个角点创建平面?

问题描述 投票:0回答:1

我正在尝试制作一个在平面角上有4个点的平面。我使用了Patch函数来显示该平面,但是我需要该平面的方程式。有没有办法在Matlab中做到这一点?实际上,我想从此页面计算出一组点的距离。使用补丁功能也可以吗? enter image description here

matlab plane
1个回答
0
投票

我怀疑MATLAB的图形对象具有很多内置的数学能力。我认为达​​到最终目标的最佳方法是自己算术。

您应牢记的数学特性是,唯一定义一个平面只需3个点。不需要在平面上的第四个点。

该方法的简要概述:

  • 给定平面上的点x1,x2,x3,我们可以定义向量v1 = x2-x1,v2 = x3-x1。
  • 然后我们计算法向向量n = v1 x v2(此处为叉积)。
  • 然后我们将法线向量n_hat = n / norm(n,2)归一化
  • 对于某个任意点x,其到平面的距离仅为x.n_hat(这里是点积)。

示例代码:

x = [35.625, 35.7 , 35.825, 35.75];
y = [56.25 , 56.25, 59.25 , 59.25];

% This example assumes vectors are column vectors
% Must be 3 element vectors to perform cross product
v1 = [x(2)-x(1)
      y(2)-y(1)
      0];
v2 = [x(3)-x(1)
      y(3)-y(1)
      0];

n = cross(v1, v2);
n_hat = n / norm(n, 2);

% the unused 4th point should have zero distance to the plane, so d4=0
p4 = [x(4); y(4); 0];
d4 = dot(n_hat, p4)

% the point d5=[0,0,2] is 2 units above the plane, so d5=0
p5 = [0; 0; 2];
d5 = dot(n_hat, p5)
© www.soinside.com 2019 - 2024. All rights reserved.