Matlab问答day10
来源:互联网 发布:单反吧口碑好的淘宝店 编辑:程序博客网 时间:2024/05/15 06:39
1.Matlab的delaunay三角剖分函数
clear
clc
%假设已知数据:
x = rand(5,1);
y = rand(5,1);
TRI = delaunay(x',y');
triplot(TRI,x,y);%绘图
即连续平面上的点集,使之完全由三角形构成,且满足一定条件(互不相交、包含)等;
clear
clc
%假设已知数据:
x = rand(5,1);
y = rand(5,1);
z = rand(5,1);
TRI = delaunay(x,y,z);
trisurf(TRI,x,y,z);%绘图
三维也可以完成,只是全部图形由四面体构成。还有trimesh函数等。
参考:Matlab论坛
2. 画三维隐函数的一个数值方法:
Matlab画3维图形的ezplot函数先前提过,但那是用参数方程的方式画图。
对一个隐函数f(x,y,z)来讲,其实它已经到四维空间了,其实x,y,z三点确定一个f。
当我回答论坛一个问题:sin(z)+z+x^2+sin(x)+y+sin(y)=1时,我考虑的确是这个隐函数在f(x,y,z)=1处的“切体”(对等于切面)
因此,我给出的方法是:clear
clc
syms z
counter =1;
f = @(x,y,z)z+x^2+sin(x-y)-y+sin(y)-1;%给出隐函数
for x = 0:0.3:pi%指定x,y范围
for y = 0:0.3:pi
temp(counter) = solve(f(x,y,z)==0,z);%按已知求解方程
counter = counter + 1;
end
end
x = 0:0.3:pi;
y = 0:0.3:pi;
temp2 = double(temp);%数值化数据
[X,Y] = meshgrid(x,y);
temp3 = reshape(temp2,size(X));
surf(X,Y,temp3)
可是这个方法十分的不稳定,理论也不太成熟。
还好论坛上的大神们解决了这个问题:
点击打开链接:from Matlab论坛
用到了isosurface, patch, isonormals三个函数。
- Matlab问答day10
- Matlab问答记day1
- Matlab问答day2
- Matlab问答day3
- Matlab问答day4
- Matlab问答day5
- Matlab问答day6
- Matlab问答day7
- Matlab问答day8
- Matlab问答day9
- Matlab问答day11
- Matlab问答day12
- Matlab问答day13
- day10
- day10
- day10
- day10
- day10
- js实现京东商城导航
- [宏哥传]01,求职有感
- android源码分析系列(二):propertyAnimation和NineOldAndroids源码分析
- cocos2d-x使用curl获取文件大小
- js信息滚动marquee标签
- Matlab问答day10
- 今天诸事不宜
- android绘图处理系列(一):bitmapShader和Xfermode
- python opencv 使用摄像头捕获视频并显示
- python opencv 读取视频文件并显示
- 排序算法(一)模板类
- DBFS POJ1198 Solitaire
- UVAlive-3363 String Compression
- django与jquery数据传递过程