平面和三维曲面图相交求交线和画图

您所在的位置:网站首页 matlab三维图绘制mesh 平面和三维曲面图相交求交线和画图

平面和三维曲面图相交求交线和画图

2023-04-24 04:43| 来源: 网络整理| 查看: 265

一、三维散点图画图

有的时候我们要画一些三维图(曲面图),但图的方程没有,只有一些散点图,想要画这样的图mesh和surf是暂时不行的

他们要求输入的是矩阵,但我们获得是 x y z这样的一些散点的结合,这时候画图只能用plot3

比如我们这些数据和图:

不好意思,具体描述什么物理量暂时不清楚,据说是一个亚/超高斯曲面

现在有个需求,就是要从过 原点 和 过最大值(记为x0,y0,z0) 拉一个平面,对这个三维图进行切割,画出切割出出来的平面和曲面的交线,下面最大值,貌似在12 -90.5

二、Matlab中画透明平面

平面是有三个点决定的(不重叠的三个点),我这里有z轴和一个最大值点,也能确定一个平面(用来做剖面)

我们设定这个剖面的宽和高 分别为w和h

% 设界面高度为h,宽度为w,(根据具体情况定,按理说这个面是无穷大) w = 300; h = 120;

seta  = atan2(y0,x0);%使用 atan2函数获得 剖面和xy平面投影交线与x轴的夹角 x1 = x0 - (w/2)* cos(seta);%分别获得这个交线的开始点 y1 = y0 - (w/2)* sin(seta);

x2 = x0 + (w/2)* cos(seta);%终止点 y2 = y0 + (w/2)* sin(seta);

% 剖截面 % 左下 x1,y1,0 % 右下 x2,y2,0 % 右上 x2,y2,h % 左上 x1,y1,h

使用shape函数来画这个坡面,另外设定一定的透明度

patch([x1,x2,x2,x1],[y1,y2,y2,y1],[0,0,h,h],'w','FaceAlpha',0.4,'FaceColor','m');

有点样子了,可以适当调整 宽高比,达到16:9的黄金视觉

上面隐约能看到交叠线,但这是matlab画图造成的,并不是我们get到

所谓的get到是,数学上所谓的有某个解析解(方程)或者数值解(一系列数值点),现在没有,只是看到。

三、获得交线

交线实际上是要解方程的,原则上是,满足既在平面上,又在曲面上,然后联立成方程组,然后解方程得到若干个点,连成线。

但现在没方程,尤其是三维曲面,点都是散点,没方程,说不定还得等待拟合呢,所以行不通。

行不通也不能代表不能画,方法就是使用插值

插值的思路就是对 曲面进行二维插值,插值的网格点你选择在剖截面上就行了(满足平面方程)

首先我们有这个函数 TriScatteredInterp 这个函数后续可能不支持了

这个函数就是用散点进行插值,完了返回插值方程F ,你再使用 F对grid 上的待插值点求算即可

%插值函数 F = TriScatteredInterp(x,y,z,'linear');

N1 = 500;%保证数量,太少插值效果不好 dx = (Rxmax - Rxmin)/(N1-1);

grid_x = Rxmin:dx:Rxmax;

%网格上的xy点都符合剖截面方程

%构造这样的grid很重要,否则下面的 “解方程”没有根

%高能---->三维曲面只在固定的grid有数值,不是每个地方都能刚好交叉上 Rymin)&&(yp < Rymax)                 intersecting_line = [intersecting_line;[xp,yp,zp]] ;             end         end     end end

% 拿出交线来 x_t = intersecting_line(:,1); y_t = intersecting_line(:,2); z_t = intersecting_line(:,3);

figure(1) hold on plot3(x_t,y_t,z_t,'r','linewidth',5);

(上图x轴坐标轴是相对值)

结果还不错

三、插值之后再使用mesh或者surf画图

现在插值结果也有了,我们可以使用mesh或者surf画图了

mesh(x_interp,y_interp,z_interp);

配合上面提到的 patch和plot3,立马得到最终的结果

总结一下:

画空间直线图 plot3

画曲面 mesh,surf

2D3D插值,TriScatteredInterp

有个疑问留给大家,上面二维插值的时候,能不能用interp2做插值?为什么?



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3