0

请看附图在此处输入图像描述

在图像中,可以看到两条弧线(蓝色和绿色)和连接它们的红线。这给了我们表面(我认为它的圆拱,但如果它是错误的,请纠正我)。

我的问题是如何模拟这种结构。

1-我怎样才能拥有这种结构的函数 f(x,y,z)

2-如何获得线(拱面)交点

3分就可以了?

简而言之,我想从给定的立场/观点获得这个结构上的点 (x,y,z)。例如,P=[19,-62,-1.2]

在此处输入图像描述

Matlab 代码会更有帮助。

更多信息:

第一条曲线上的点

p2 = [17.9463,-59.7586,-1.0200]; % start [x,y,z]
p0 = [19.1163,-58.5886,-1.0200]; % center
p1 = [20.2863,-59.7586,-1.0200]; % End

第二条曲线上的点

p4 = [17.9463,-59.7586,-1.78]; 
p0_ = [19.1163,-58.5886,-1.78]; 
p3 = [20.2863,-59.7586,-1.78];

半径:r=1.17;

任何想法?

4

1 回答 1

2

从曲线图中获得精确的函数是一项有点不精确的任务。但是,如果您做出假设和近似,您仍然可以做出很好的近似。

让我们假设这是一个半圆柱形。圆形横截面位于 xz 平面内,这意味着 3-D 曲线为:

F(x, y, z) = ( x - x 0 ) 2 + ( z - z 0 ) 2 = r 2

其中x 0z 0是中心坐标,r是半径。

我假设绘图中的左轴是 y 轴,z 轴在右侧。据我所知,它们的近似值为:

x 0 ≈ 19.1
z 0 ≈ -59.6
r ≈ 1.2
y似乎在 -1 和 -1.7 之间变化

您可以使用meshgridsurf轻松生成 3-D 图:

r = 1.2;
x0 = 19.1;
z0 = -59.6;
[X, Y] = meshgrid(17.9:0.05:20.3, -1.7:0.05:-1);
Z = z0 + abs(sqrt(r ^ 2 - (X - x0) .^ 2));
surf(X, Y, Z)

注意两点:

  1. 我在 x 轴和 y 轴上都将分辨率设置为 0.05。
  2. 我已经应用abs了结果sqrt来消除任何不需要的复杂结果。

结果应该是这样的:

在此处输入图像描述

于 2012-12-17T14:41:46.143 回答