请参阅附件图片
在图像中,可以看到两条弧(蓝色和绿色)和连接它们的红线。这给了我们表面(我认为它的圆拱,但如果它是错的,请纠正我。)
我的问题是如何模拟这种结构。
1 - 如何使用此结构的函数f(x,y,z)
2 - 如何获得线(拱面)交叉点
3分?
简而言之,我希望从给定的立场/视点获得此结构上的点(x,y,z)。例如,P = [19,-62,-1.2]
Matlab代码会更有帮助。
更多信息:
第1条曲线上的点
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;
有什么想法吗?
答案 0 :(得分:2)
从曲线图中获取精确函数是一项有点不精确的任务。但是,如果你做出假设和近似,你仍然可以做出很好的近似。
我们假设这是一个半圆柱形状。圆形横截面位于x-z平面,意味着3-D曲线为:
F(x,y,z)=( x - x 0 ) 2 +(< i> z - z 0 ) 2 = r 2
其中 x 0 且 z 0 是中心坐标和 r 是半径。
我假设图中的左轴是y轴,z轴在右边。据我所知,它们的近似值是:
x 0 ≈19.1
z 0 ≈-59.6
r ≈1.2 y 似乎在-1和-1.7之间变化
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)
注意两件事:
abs
的结果应用了sqrt
,以消除任何不必要的复杂结果。结果应该是这样的: