- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
使用matlab函数构建三维立方体的几种方法
使用matlab函数构建三维立方体的几种方法 matlab是一种功能强大的科学运算软件,其基于矩阵的运算单位和和演算纸式的编程方式,配合强大的各类工具箱函数,极大简化了编程难度而又不失应用的灵活性,使matlab非常适合进行探索性的研究工作。matlab提供了丰富的绘图函数,能够快速高效地画出各类图形,在通用编程软件中功能领先。 在matlab中,我们可以使用多种思路实现三维形体的构建,本文以构建一个三维立方体为例详细介绍matlab的用法,充分说明matlab的编程特点与构想方法,以供参考。 1、 三维形体的点阵表示方法。 一个三维形体可以看成由无数个散点有规律集合而成。利用scatte3r()三维散点绘图函数绘制足够多的点,就可以实现三维空间的形体表示。如图1. 使用三重循环,用1000点实现一个10*10*10的立方体。此功能也可用plot3()实现. for i=0:10; for j=0:10; for k=0:10; scatter3(i,j,k); hold on; end end end 使用点阵描绘三维形体适合于比较简单有规律的目标,如果点数过多速度将较慢,一般较少应用。但是在由已知模型向未知模型转化的情况下,该方法十分有效。可以直接利用点对点的对应关系作出未知三维形体的空间结构。 2. 三维形体的线阵表示方法 三维形体可以看成由多个截面集合而成,而面可以由线集合。本例中使用plot3绘制线段,组合成面,循环绘制多个面,就可以实现三维空间的形体表示。如图2. 使用三重循环,用100个面,每个面100条线,组成了一个立方体。 x=linspace(0,1); y=linspace(0,1); [X,Y]=meshgrid(x,y); for i=1:100 Z=linspace(i,i); plot3(X,Y,Z);hold on end 此法作出立方体三维效果好,速度较快,接近实体。如果机器速度合适,可以看出立方体绘制时从下往上的动态效果。 3、三维形体的外围面表示 直接绘制一个形体的所以外围面,也可以直接地表达该形体的立体效果。如图3,用不同颜色直接画出立方体的6个面,也可以得到逼真的三维效果。 x=linspace(0,1); y=linspace(0,1); %[X,Y]=meshgrid(x,y); for i=0:1:1 Z=linspace(i,i); plot3(X,Y,Z,r);hold on; plot3(Y,Z,X,g);hold on; plot3(Z,X,Y,b);hold on; end 对形体的内部各点没有取值要求的情况下,直接绘面效率很高。 4、使用边缘线表示三维形体。 这是一种常见的方法,利用透视关系,得到的图形也具有很好的效果。而且绘制速度最快。 X=zeros(8,3); X([5:8,11,12,15,16,18,20,22,24])=1; d=[1 2 4 3 1 5 6 8 7 5 6 2 4 8 7 3]; plot3(X(d,1),X(d,2),X(d,3)); view(3); rotate3d; 5、fill3函数作面 x=[0 1 1 0 0 0;1 1 0 0 1 1;1 1 0 0 1 1;0 1 1 0 0 0]; y=[0 0 1 0 0 0;0 1 1 1 0 0;0 1 1 1 1 1;0 0 1 0 1 1]; z=[0 0 0 0 0 1;0 0 0 0 0 1;1 1 1 1 0 1;1 1 1 1 0 1]; fill3(x,y,z, y) fill3作出的多边形面,平滑完整,速度快,但对于带曲面的形体不适用。而且对于复杂的多面体,要一一找出顶点坐标也非易事。 6、patch函数作多面体 v=[0 0 0;0 50 0;30 50 0;30 0 0;0 0 40;0 50 40;30 50 40;30 0 40];f= [1 2 3 4;2 6 7 3;4 3 7 8;1 5 8 4;1 2 6 5;5 6 7 8];patch(Faces,f,Vertices,v,FaceColor,b);view(30,30)axis equal 7、mesh,surf函数作面 x=linspace(0,1); y=linspace(0,1); Z1=ones(100,100); Z2=zeros(100,100); mesh(X,Y,Z1);hold on; mesh (X,Y,Z2);hold on; mesh (Y,Z1,X);hold on; mesh (Y,Z2,X);hold on; mesh (Z1,Y,X);hold on; mesh (Z2,Y,X); mesh网线图:线条有
有哪些信誉好的足球投注网站
文档评论(0)