精华内容
下载资源
问答
  • 8.3 三维图形函数包 8.3.1 ChartStyle2D类 8.3.2 Point4类 8.3.3 DataSeries类 8.3.4 ChartFunctions类 8.3.5 DrawChart类 8.4 曲面图的实现 8.4.1 网格图 8.4.2 幕布网格图 8.4.3 瀑布网格图 8.4.4 曲面图 8.5 X-Y...
  • 绘制三维图形的基本函数

    万次阅读 2018-10-29 17:17:16
    1.绘制三维图形的基本函数   1 2 3 4 5 6 最基本的三维绘图函数为plot3; plot3与plot用法十分相似,调用格式:   plot(x1,y1,z1,选项1,x2,y2,z2,选项2,...,...

    1.绘制三维图形的基本函数

        

    1

    2

    3

    4

    5

    6

    最基本的三维绘图函数为plot3;

    plot3与plot用法十分相似,调用格式:

     

    plot(x1,y1,z1,选项1,x2,y2,z2,选项2,...,xn,yn,zn,选项n)

    当x,y,z是同维向量时,则x,y,z,对应元素构成一条三维曲线;

    当x,y,z是同维矩阵时,则以x,y,z对应列元素绘制三维曲线,曲线条数等于矩阵列数。

      例:

    程序如下:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    t=0:pi/50:2*pi;

    x=8*cos(t);

    y=4*sqrt(2)*sin(t);

    z=-4*sqrt(2)*sin(t);

    plot3(x,y,z,'p');

    title('Line in 3-D Space');

    text(0,0,0,'origin');

    xlabel('x'),ylabel('y'),zlabel('z');

    grid;

      运行结果:

    2.三维曲面

    2.1平面网格坐标矩阵的生成

      绘制z=f(x,y)所代表的三维曲面图,先要在xy平面选定一个矩形区域,假定矩形区域D=[a,b]*[c,d],然后将[a,b]在x方向分成m份,将[c,d]在y方向分成n份,由各划分点分别作平行于两坐标轴的直线,将区域D分成m*n个小矩形,生成代表每一个小矩形顶点坐标的平面网格坐标矩阵,最后利用有关函数绘图。

      产生平面区域内的网格坐标矩阵有两种方法:

      1.利用矩阵运算生成、

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    x=a:dx:b;

    y=(c:dy:d)';

    X=ones(size(y))*x;

    Y=y*ones(size(x));

    语句执行后,

    矩阵X的每一行都是向量x,行数等于向量y的元素个数,

    矩阵Y的每一列都是向量y,列数等于向量x的元素个数。

    于是对于矩阵X,Y来说,它们位置(i,j)上的元素值(X(i,j),Y(i,j))就是所要形成的平面网格

    在位置(i,j)上的X,Y坐标。可根据每一个网格点上的x,y坐标求这个点对应的z,则得到Z矩阵。

    显然,X,Y,Z各列或各行所对应坐标,对应于一条空间曲线,空间曲线的集合将可组成空间曲面。

      2.利用meshgrid函数生成。

     

    1

    2

    3

    4

    5

    6

    调用格式:

    x=a:dx:b;

    y=c:dy:d;

    [x,y]=meshgrid(x,y);

    语句执行后得到与方法1相同的矩阵X,Y。

    当向量x=y时,函数可写成meshgrid(x);

      例:利用法网格坐标阵巧解不定方程:

      已知6<x<30,15<y<36,求不定方程2x+5y=126的整数解。程序如下:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

    42

    43

    44

    45

    46

    47

    48

    49

    50

    x=7:29;

    y=16:35;

    [x,y]=meshgrid(x,y); %在[7,29]*[16,35]区域生成网格坐标

    z=2*x+5*y;

    k=find(z==126);%找出解的位置,即k为z中元素等于126的元素的位置

    x(k)',y(k)'%输出对应位置的x,y即方程的解

     

    输出:

    ans =

     

         8    13    18    23

     

     

    ans =

     

        22    20    18    16

    %即方程有4组解:(8,22),(13,20),(18,18)(23,16).

     

    输出:

    >> k

     

    k =

     

        27

       125

       223

       321

     

    输出(关于find函数):

    >> [a,b]=find(z==126)

     

    a =

     

         7

         5

         3

         1

     

     

    b =

     

         2

         7

        12

        17

    >> x(7,2)

     

    ans =

     

         8

    2.2 绘制三维曲面的函数

    两个函数:

    1

    2

    3

    4

    5

    6

    7

    8

    mesh(x,y,z,c)%用于绘制三维网格图,在不需要绘制特别精细三维曲面时使用。

    surf(x,y,z,c)%用于绘制三维曲面,各线条之间的补面用颜色填充。

     

    关于x,y,z,c:

     

    one:通常x,y,z是同维矩阵,x,y是网格坐标矩阵,z是网格点的高度矩阵,c用于指定在不同高度下的颜色范围。

    two:c省略时,MATLAB认为c=z,即颜色的高度正比于图形高度,以得到层次分明的三维图形。当x,y省略时,把z矩阵的列下标当做x轴坐标,把z矩阵的行下标当做y轴坐标,然后绘制三维曲面图。

    three:当x,y是向量时,要求x的长度必须等于z矩阵的列数,y的长度等于z矩阵的行数,x,y向量元素的组合构成网格点的x,y坐标,z坐标则取自z矩阵,然后绘制三维曲面图。

    例5.15:用三维曲面图表现函数z=sinycosx。

    program1:用meshgrid+mesh

    1

    2

    3

    4

    5

    6

    x=0:0.1:2*pi;

    [x,y]=meshgrid(x);

    z=sin(y).*cos(x);

    mesh(x,y,z);

    xlabel('x-axis'),ylabel('y-axis'),zlabel('z-axis');

    title('mesh');<br><br>效果同:

    x=0:0.1:2*pi;
    y=0:0.1:2*pi;
    z=sin(y')*cos(x);
    mesh(x,y,z);
    xlabel('x-axis'),ylabel('y-axis'),zlabel('z-axis');

      运行结果:

    program2:用meshgrid+surf

    1

    2

    3

    4

    5

    6

    x=0:0.1:2*pi;

    [x,y]=meshgrid(x);

    z=sin(y).*cos(x);

    surf(x,y,z);

    xlabel('x-axis'),ylabel('y-axis'),zlabel('z-axis');

    title('meshgrid+surf');

      

    program3:用一般绘图函数plot3

    1

    2

    3

    4

    5

    6

    7

    x=0:0.1:2*pi;

    [x,y]=meshgrid(x);

    z=sin(y).*cos(x);

    plot3(x,y,z);

    xlabel('x-axis'),ylabel('y-axis'),zlabel('z-axis');

    title('meshgrid+plot3-1f');

    grid;

      

    例5.16:绘制两个直径相等的圆管的相交图形。

    程序如下:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    %两个等直径圆管的交线

     

    m=60;%m是圆圈的密集度,表示画60个圆圈

    z=1.2*(0:m)/m;%1.2是圆柱高

    r=ones(size(z));

    theta=(0:m)/m*2*pi;

     

    x1=r'*cos(theta);%每行都是一个cos(theta)

    y1=r'*sin(theta);%每行都是一个sin(theta)

    %y1=y1';

    z1=z'*ones(1,m+1);%每行的z相同

     

    surf(x1,y1,z1);%绘图,立起的圆柱

     

    %axis equal,axis off

    hold on

     

    x=(-m:2:m)/m;

    x2=x'*ones(1,m+1);%m+1个x列

    y2=r'*cos(theta);%以y和z为底画圆

    %y2=y2';

    z2=r'*sin(theta);

     

    surf(x2,y2,z2);

     

    axis equal,axis off

    title('两个等直径圆管的交线');

    hold off

      运行结果:

     将上述例5.16中程序的%备注取消,即将第一图的y阵第二图的z阵转置,这样在底层面就不再是圆线了,效果如下:

    例5.17 分析由函数z=x^2-2y^2构成的曲面形状及与平面z=a的交线。

     

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    [x,y]=meshgrid(-10:0.2:10);

    z1=(x.^2-2*y.^2)+eps;%第一个曲面

    a=input('a=?');

    z2=a*ones(size(x));%第二个曲面(本质是一个数乘)

    subplot(1,2,1);

    mesh(x,y,z1);hold on;mesh(x,y,z2);%分别画出两个曲面

    v=[-10,10,-10,10,-100,100];axis(v);grid;%第一个子图的坐标设置

    hold off;

    r0=(abs(z1-z2)<=1);%求两曲面z坐标差小于1的点,r0只有0、1值

    xx=r0.*x;yy=r0.*y;zz=r0.*z2;%求这些点上的x,y,z坐标,即交线坐标

    subplot(1,2,2);

    plot3(xx(r0~=0),yy(r0~=0),zz(r0~=0),'*');%在第2子图画出交线

    axis(v);grid;%第2子图的坐标设置

    a=?8
    size(x)

    ans =

    101 101

    1

    <br>

      

      此外,还有两个和mesh函数相似的函数,即带等高线的三维网格曲面函数meshc带底座的三维网格曲面函数meshz。其用法与mesh类似,不同的是meshc还在xy平面上绘制曲面在z轴方向的等高线,meshz还在xy平面上绘制曲面的底座。

          例5.18 在xy平面内选择区域[-8,8]*[-8,8],绘制函数的4种三维曲面图。

    程序如下:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    [x,y]=meshgrid(-8:0.5:8);

    z=sin(sqrt(x.^2)+y.^2)./sqrt(x.^2+y.^2+eps);

    subplot(2,2,1);

    meshc(x,y,z);

    title('meshz(x,y,z)')

    subplot(2,2,2);

    meshz(x,y,z);

    title('meshz(x,y,z)')

    subplot(2,2,3);

    surfc(x,y,z)

    title('surfc(x,y,z)')

    subplot(2,2,4);

    surfl(x,y,z)

    title('surf1(x,y,z)')

      

      3.标准三维曲面

      MATLAB提供了一些函数用于绘制标准三维曲面,这些函数可以产生相应的绘图数据,常用于三维图形的演示。例如:

    sphere函数和cylinder函数分别用于绘制三维球面和柱面。其调用格式为:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    <strong>sphere函数的调用格式为:</strong>

    [x,y,z]=sphere(n)

    该函数将产生(n+1)*(n+1)矩阵x,y,z,采用这3个矩阵可以绘制出圆心位于原点、半径为1的单位球体。

    若在调用该函数时不带输出参数,则直接绘制所需球面。n决定了球面的圆滑程度,其默认值为20.若n值取得较小,则将绘制出多面体表面图。

     

     

     

     

    <strong>cylinder函数调用格式为:</strong>

    [x,y,z]=cylinder(R,n)

    其中,R是一个向量,存放柱面各个等间隔高度上的半径,n表示在圆柱圆周上有n个间隔点,默认有20个间隔点。例如,cylinder(3)生成一个圆柱,cylinder([10,1])生成一个圆锥,

    t=0:pi/100:4*pi;

    R=sin(t);

    cylinder(R,30)

    生成一个正弦柱面。

    另外,生成矩阵的大小与R向量的长度及n有关。其余与sphere函数相同。

      

     

    MATLAB还有一个peaks函数,称为多峰函数,,常用于三维曲面的演示。该函数可以用来生成绘图数据矩阵,矩阵元素由函数:

    在矩形区域[-3,3]*[-3,3]的等分网格点的函数值确定。例如:

    z=peaks(30);

    将生成一个30*30矩阵z,即分别沿x和y方向将区间[-3,3]等分成29份,并计算这些网格点上的函数值。默认的等分数是48,即p=peaks将生成一个49*49矩阵p。也可以根据风格坐标矩阵x、y重新计算函数值矩阵。例如:

    [x,y]=meshgrid(-5:0.1:5);

    z=peaks(x,y);

    生成的数值矩阵可以作为mesh、surf等函数参数而绘制出发多峰函数曲面图。另处,若在调用peaks函数时不带输出参数,则直接绘制出多峰函数曲面图。

    例5.19 绘制标准三维曲面图形。

    程序如下:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    t=0:pi/20:2*pi;

    [x,y,z]=cylinder(2+sin(t),30);

    subplot(1,3,1);

    surf(x,y,z);

    subplot(1,3,2);

    [x,y,z]=sphere;

    surf(x,y,z);

    subplot(1,3,3);

    [x,y,z]=peaks(30);

    meshz(x,y,z);

      

    4.其它三维图形

    4.1 三维条形图

    1

    2

    3

    4

    5

    bar3函数绘制三维条形图,调用格式为:

    bar3(y)

    bar3(x,y)

    在第一种格式中,y的每个元素对应一个条形。

    第二种格式在x指定 的位置上绘制y中元素的条形图,X为向量,当y为向量时,x元素个数与y列数相同,当y为矩阵时,x元素与y的行数相同。

    例:1.bar3(y)

    (1)当y为矩阵时,以元素下标为坐标,以元素值为高度,绘制条形图。

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    >> y=magic(5)

     

    y =

     

        17    24     1     8    15

        23     5     7    14    16

         4     6    13    20    22

        10    12    19    21     3

        11    18    25     2     9

     

    >> y(5,:)=[]%删除第五行

     

    y =

     

        17    24     1     8    15

        23     5     7    14    16

         4     6    13    20    22

        10    12    19    21     3

     

    >> bar3(y)

      

    (2)当y为向量时,也是以下标为坐标,为值为高度。

    1

    2

    3

    4

    5

    6

    7

    8

    >> y=[1 3 5 7 2]

     

    y =

     

         1     3     5     7     2

     

    >> bar3(y)

    >>

      

    2.bar3(x,y)

    (1)x为向量,y为向量

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    >> y

     

    y =

     

         1     3     5     7     9    11

     

    >> x

     

    x =

     

         1     3     5     4     8    11

     

    >> bar3(x,y)

    >>

      

    (1)x为向量,y为矩阵(x元素改变y矩阵的x坐标)

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    y =

     

        17    24     1     8    15

        23     5     7    14    16

         4     6    13    20    22

        10    12    19    21     3

     

    >> x=[1 3 5 9]

     

    x =

     

         1     3     5     9

     

    >> bar3(x,y)

      

     

    1

    <strong style="font-size: 1.5em; background-color: rgb(225, 230, 215); font-family: verdana, Arial, Helvetica, sans-serif; line-height: 1.5;">4.2 三维杆图</strong>

    1

    2

    3

    4

    stem3(z)

    stem3(x,y,z)

    第一种格式将 数据序列z 表示为xy平面向上延伸的杆图,x和y自动生成。

    第二种格式在x和y指定位置上绘制 数据序列z的杆图,x,y,z的维数必须相同。

    1.stem3(z)

    (1)z为矩阵,以下标为坐标,值为杆值

    1

    2

    3

    4

    5

    6

    7

    8

    z =

     

        17    24     1     8    15

        23     5     7    14    16

         4     6    13    20    22

        10    12    19    21     3

     

    >> stem3(z)

      

    (2)z为向量,以下标为坐标,值为杆值

    1

    2

    3

    4

    5

    6

    7

    8

    z=y(1,:)

     

    z =

     

        17    24     1     8    15

     

    >> stem3(z)

    >> stem(z)

      

      

    2.stem3(x,y,z)

    (1)x,y,z均为向量,以(x,y)为对应坐标z为值

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    x =

     

         1     2     5     9     6

     

    >> y=x

     

    y =

     

         1     2     5     9     6

     

    >> z=x

     

    z =

     

         1     2     5     9     6

     

    >> stem3(x,y,z)

    >>

      

    4.3 三维饼图

    1

    2

    pie3(x)

    其中x为向量,用x中的数据绘制一个三维饼图。

      

    1

    2

    pie3([2347 1827 2043 3025])

    pie([2347 1827 2043 3025])

      

    4.4 填充多边形

    1

    2

    fill3(x,y,z,c)

    使用x,y,z作为多边形的顶点,用c指定了填充的颜色。

      

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    fill(x,y,c)

    以(x,y)为点,c为颜色图,连点并填充点间面。

    x =

     

         1     5     6     8

     

    >> y

     

    y =

     

         2     6     4     6

     

    >> z=[1 2 3 4 5 ]

     

    z =

     

         1     2     3     4     5

     

    >> fill(x,y,z)

      

    1

    fill3(rand(3,5),rand(3,5),rand(3,5),'y')

      

    分类: matlab

    展开全文
  • 8.3 三维图形函数包 508 8.3.1 chartstyle2d类 509 8.3.2 point4类 515 8.3.3 dataseries类 516 8.3.4 chartfunctions类 521 8.3.5 drawchart类 526 8.4 曲面图的实现 541 8.4.1 网格图 541 8.4.2 幕布网格...
  • 接上文 计算机图形学 学习笔记(七):二维图形变换:平移,比例,旋转,坐标变换等通过三维图形变换,可由简单图形得到复杂图形,三维图形变化则分为三维几何变换和投影变换。6.1 三维图形几何变换三维物体的几何...

    接上文 计算机图形学 学习笔记(七):二维图形变换:平移,比例,旋转,坐标变换等


    通过三维图形变换,可由简单图形得到复杂图形,三维图形变化则分为三维几何变换和投影变换。

    6.1 三维图形几何变换

    三维物体的几何变换是在二维方法基础上增加了对 z 坐标的考虑得到的。

    有关二维图形几何变换的讨论,基本上都适合三维空间。从应用角度来看,三维空间几何变化直接与显示和造型有关,因此更为重要。

    同二维变换一样,三维基本变换都是相对于坐标原点和坐标轴进行的几何变换:有平移、比例、旋转、对称和错切等。

    与二维变换类似,引入齐次坐标表示,即:三维空间中某点的变换可以表示成 点的齐次坐标与四阶的三维变换矩阵相乘。

    这里写图片描述
    这里写图片描述
    这里写图片描述

    平移变换

    若三维物体沿 x, y, z 方向上移动一个位置,而物体的大小与形状均不变,则称为平移变换。

    这里写图片描述

    点 P 的平移变换矩阵表示如下:

    这里写图片描述

    比例变换

    比例变换分为局部比例变换和整体比例变换。

    局部比例变换

    这里写图片描述
    这里写图片描述

    例子:

    这里写图片描述

    解答:

    这里写图片描述

    整体比例变换

    这里写图片描述

    旋转变化

    三维立体的旋转变化是指给定的三维立体绕三维空间某个指定的坐标轴旋转 θ 角度。旋转后,立体的空间位置将发生变化,但形状不变。

    θ 角的正负按右手规则确定,右手大拇指指向旋转轴的正向,其余四个手指指向旋转角的正向。

    这里写图片描述

    绕 z 轴旋转 θ

    三维空间立体绕 z 轴正向旋转时,立体上各顶点的 x, y 坐标改变,而 z 坐标不变。而 x ,y 坐标可以由二维点绕原点旋转公式得到,由此可得:

    这里写图片描述
    这里写图片描述

    绕 x 轴旋转 θ

    同理,三维点 p 绕 x 轴正向旋转 θ 角的矩阵计算形式为:

    这里写图片描述

    绕 y 轴旋转 θ

    三维点 p 绕 y 轴正向旋转 θ 角的矩阵计算形式为:

    这里写图片描述

    绕任意轴旋转

    求绕任意直线旋转矩阵的原则:

    1. 任意变换的问题->基本几何变换的问题
    2. 绕任意直线旋转的问题->绕坐标轴旋转的问题

    对称变换

    对称变换有关于坐标平面、坐标轴等的对称变换。

    关于坐标平面的对称变换

    关于 xoy 平面进行对称变换的矩阵计算形式为:

    这里写图片描述
    这里写图片描述

    关于 yoz 平面进行对称变化的矩阵计算形式为:

    这里写图片描述

    关于 zox 平面进行对称变化的矩阵计算形式为:

    这里写图片描述

    关于坐标对称的对称变换

    关于 X 轴进行对称变换的矩阵计算形式为:

    这里写图片描述

    关于 Y 轴进行对称变换的矩阵计算形式为:

    这里写图片描述

    关于 Z 轴进行对称变换的矩阵计算形式为:

    这里写图片描述

    6.2 投影变换分类

    如何在二维平面上显示三维物体?显示器屏幕、绘图纸等都是二维的,显示对象是三维的。

    解决方法:投影变换

    平面几何投影

    投影变换就是把三维物体投射到投影面上得到二维平面图形。

    需要记住的一点就是,计算机绘图是产生三维物体的二维图像。但在屏幕上绘制图形的时候,必须在三维坐标系下考虑画法。

    常见的投影法

    这里写图片描述

    两种投影法的本质区别在于透视投影的投影中心到投影面之间的距离是有限的,而另一个的距离是无限的。

    透视(中心)投影

    投影线均通过投影中心。在投影中心相对投影面确定的情况下,空间的一个点在投影面上只存在唯一一个投影。

    这里写图片描述

    透视投影特点:

    这里写图片描述

    • 物体的投影视图由计算投影线与观察平面之交点而得
    • 透视投影生成真实感视图但不保持相关比例

    平行投影

    如果把透视投影的中心移至无穷远处,则各投影线称为相互平行的直线,这种投影法称为平行投影法。

    这里写图片描述

    平行投影特点:

    这里写图片描述

    • 平行投影保持物体的有关比例不变
    • 物体的各个面的精确视图由平行投影而得
    • 没有给出三维物体外表的真实性表示

    平面几何投影的分类

    这里写图片描述

    6.3 平行投影(三视图、轴视图)

    平行投影可根据投影方向与投影面的夹角分成两类:正投影和斜投影。

    这里写图片描述

    正投影

    正投影根据投影面与坐标轴的夹角又可分为两类:三视图和正轴侧图。

    当投影面与某一坐标轴垂直时,得到的投影为三视图,这是投影方向与这个坐标轴的方向一致。否则,得到的投影为正轴侧图。

    这里写图片描述

    三视图

    通常所说的三视图包括主视图、侧视图和俯视图三种,投影面分别与 X 轴、 Y 轴、Z轴垂直。

    这里写图片描述

    例子

    这里写图片描述

    三视图的特点

    物体的一个坐标面平行于投影面,其投影能反应形体的实际尺寸。工程制图中常用三视图来测量形体间的距离、角度以及相互位置关系

    三视图缺点

    三视图只有物体一个面的投影,所以三视图难以形象地表示出形体的三维性质,只有将主视图、侧视图、俯视图三个视图放在一起,才能综合处物体的空间形状。

    三视图的计算

    主视图、俯视图和侧视图是分别将三维物体对正面、水平面和侧面作正平行投影而得到的三个基本视图。

    显然,只要 求得这种正平行投影的变换矩阵,就可以得到三维物体上任意点经变换后相应点,有这些变换后的点即可绘出三维物体投影后的三视图。

    这里写图片描述

    具体计算步骤如下:

    1. 确定三维物体上各点的位置坐标
    2. 引入齐次坐标,求出所作交换相应的交换矩形
    3. 将所变换用矩阵表示,通过运算求得三维物体上各点经变换后的点坐标值
    4. 由变换后得到的二维点绘出三维物体投影后的三视图

    主视图

    将三维物体 x0z 面(又称 V 面)作垂直投影,得到主视图。

    这里写图片描述
    这里写图片描述

    俯视图

    将三维物体 x0y 面做垂直投影得到的俯视图。

    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述

    侧视图

    将三维物体 y0z面 作垂直投影得到侧视图。

    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述

    正轴测图投影变换矩阵

    这里写图片描述

    正轴测有等轴侧、正二测和正三测三种:

    • 当投影面与三个坐标轴之间的夹角都相等时为等轴侧
    • 当投影面与两个坐标轴之间的夹角相等时为正二测
    • 当投影面与三个坐标轴之间的夹角都不相等时为正三测

    这里写图片描述

    正投影图和轴测图

    这里写图片描述

    空间中的正轴测图:

    这里写图片描述
    这里写图片描述
    这里写图片描述

    正等轴测图的变换矩阵

    这里写图片描述

    正二测图的变换矩形

    这里写图片描述

    6.4 透视投影

    透视投影表示真实看到的物体。

    透视投影是为了获得接近真实三维物体的视觉效果而在二维的纸或者画布平面上绘图或者渲染的一种方法,能逼真地反映形体的空间形象,也称为透视图。

    透视投影是3D渲染的基本概念,也是3D程序设计的基础。

    轴侧投影图是用平行投影法形成的,视点在无穷远处;而透视投影图是用中心投影法形成的,视点在有限远处。

    这里写图片描述

    透视基本原理

    众所周知,位于空间的任何一个点,它之所以能被人们的眼睛所可见,是因为从改点处发射出来的一条光线能够到达人们的眼睛。

    这里写图片描述

    该平面为透视投影面,穿点 P’ 为P的透视投影。假如是求空间点的透视投影问题得到了解决,那么空间任何线段、多边形或立体的透视投影也就可以方便地求得。

    因为一条直线段是由两点确定,多边形平面由围成该多边形的各个顶点和边框线段确定,而任何立体也可以看成是由它的顶点和各邻边所构成的一个矿体。

    这就是说,可以通过求出这些顶点的透视投影而获得空间任意立体的透视投影。

    这里写图片描述

    一点透视

    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述

    多点透视

    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述

    生成透视投影图的方法

    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述

    透视投影实例

    一点透视

    一点透视只有一个灭点。进行透视投影,要很好地考虑图面布局,以避免三维物体的平面或直线积聚成直线或点而影响直观性。具体地说,就是要考虑下列几点:

    1. 三维形体与画面(投影面)的相对位置
    2. 视距,即视点(投影中心)与画面的距离
    3. 视点的高度

    这里写图片描述

    假定视点(投影中心)在 z 轴上(z= -d 处),投影面在 x0y上,则一点透视的步骤如下:

    这里写图片描述
    这里写图片描述

    例子:

    这里写图片描述

    这里写图片描述

    单位立方体的一点透视

    这里写图片描述

    二点透视投影图的生成

    做二点透视时,通常要将物体绕 y 轴旋转 θ 角,以使物体的主要平面不平行于投影面。

    经透视变换后使物体产生变形,然后再向投影面做正投影。

    构造二点透视的一般步骤:

    1. 将物体平移到适当位置 l、m、n
    2. 将物体绕 y 轴旋转 θ 角
    3. 进行透视变换
    4. 最后向 xoy 面做正投影,即得二点透视图

    这里写图片描述

    变换结果如下图所示:

    这里写图片描述

    三点透视投影图的生成

    这里写图片描述

    构造三点透视的一般步骤如下:

    1. 将物体平移到适当位置
    2. 将物体绕 y 轴旋转 θ 角
    3. 再绕 x 轴旋转 α 角
    4. 进行透视变换
    5. 最后向 xoy 面做正投影,即得三点透视图

    6.5 三维图形变化小结

    三维物体基本几何变换

    三维物体的几何变换是在二维方法基础上增加对 z 坐标的考虑而得到的,有关二维图形几何变换的讨论,基本上都适合于三维空间。

    这里写图片描述
    这里写图片描述

    三维物体的投影变换

    这里写图片描述

    两种投影法的本质区别在于:透视投影的投影中心到投影面之间的距离是有限的,而另一个的距离是无限的。

    这里写图片描述

    平行投影的特点

    • 平行投影保持物体的有关比例不变
    • 物体的各个面的精确视图由平行投影而得
    • 没有给出三维物体外表的真实性表示

    这里写图片描述

    透视投影的特点

    • 物体的投影视图由计算投影线与观察平面之交点而得
    • 透视投影生成真实感视图但不保持相关比例
    • 透视投影比轴测图更富有立体感和真实感

    这里写图片描述

    这里写图片描述

    展开全文
  • 一、二的插值方法:原始数据(x,y)先对横坐标x进行扩充数据量,采用linspace。【如下面例子,由7个值扩充到300个】采用scipy.interpolate中的spline来对纵坐标数据y进行插值【也由7个扩充到300个】。画图import ...

    一、二维的插值方法:

    原始数据(x,y)

    先对横坐标x进行扩充数据量,采用linspace。【如下面例子,由7个值扩充到300个】

    采用scipy.interpolate中的spline来对纵坐标数据y进行插值【也由7个扩充到300个】。

    画图

    import matplotlib.pyplot as plt

    import numpy as np

    #数据

    T = np.array([6, 7, 8, 9, 10, 11, 12])

    power = np.array([1.53E+03, 5.92E+02, 2.04E+02, 7.24E+01, 2.72E+01, 1.10E+01, 4.70E+00])

    #插值

    from scipy.interpolate import spline

    xnew = np.linspace(T.min(),T.max(),300) #300 represents number of points to make between T.min and T.max

    power_smooth = spline(T,power,xnew)

    print(xnew.shape) #(300,)

    print(power_smooth.shape) #(300,)

    #画图

    plt.plot(xnew,power_smooth)

    plt.show()

    L3Byb3h5L2h0dHBzL2ltZzIwMTguY25ibG9ncy5jb20vYmxvZy8xMzM4OTkxLzIwMTkwMS8xMzM4OTkxLTIwMTkwMTExMTUyMzAzODM5LTIwNjY5MTk4NTgucG5n.jpg

    二、三维平滑图---插值:

    1、数据:

    x = [0.1,0.2,……,0.9] (shape = (9))

    y = [0.1,0.2,……,0.9] (shape = (9))

    z = 【81个数据】(shape = (81))

    生成数据:

    x = np.linspace(0.1,0.9,9)

    y = np.linspace(0.1,0.9,9)

    z = np.random.rand(81)

    2、将x和y进行扩充到想要的大小:

    【两种方法:np.arange和np.linspace】

    xnew = np.arange(0.1, 1, 0.03) 【shape=(31)】

    ynew = np.arange(0.1, 1, 0.03) 【shape=(31)】

    或者

    xnew = np.linspace(0.1, 0.9, 31)

    ynew = np.linspace(0.1, 0.9, 31)

    3、对z进行插值:

    采用 scipy.interpolate.interp2d函数进行插值。

    x,y原数据:【x.shape=9,y.shape=9,z.shape=81】

    f = interpolate.interp2d(x, y, z, kind='cubic')

    x,y扩充数据:【xnew.shape=31,y.shape=31】

    znew = f(xnew, ynew) 【得到的znew.shape = (31,31)】

    znew为插值后的z

    4、画图:

    采用 from mpl_toolkits.mplot3d import Axes3D进行画三维图

    Axes3D简单用法:

    import matplotlib.pyplot as plt

    from mpl_toolkits.mplot3d import Axes3D

    fig = plt.figure()

    ax = fig.add_subplot(111, projection='3d')

    比如采用plot_trisurf画三维图:plot_trisurf(x,y,z)

    【plot_trisurf对数据要求是:x.shape = y.shape = z.shape,所以x和y的shape需要修改,采用np.meshgrid,且都为一维数据】

    L3Byb3h5L2h0dHBzL2ltZzIwMTguY25ibG9ncy5jb20vYmxvZy8xMzM4OTkxLzIwMTkwMS8xMzM4OTkxLTIwMTkwMTExMTYwMzIzNDkwLTE2Njc2MzcxNTIucG5n.jpg

    #修改x,y,z输入画图函数前的shape

    xx1, yy1 = np.meshgrid(xnew, ynew)

    newshape = (xx1.shape[0])*(xx1.shape[0])

    y_input = xx1.reshape(newshape)

    x_input = yy1.reshape(newshape)

    z_input = znew.reshape(newshape)

    5、所有代码:

    # 载入模块

    import numpy as np

    import matplotlib.pyplot as plt

    from mpl_toolkits.mplot3d import Axes3D

    from matplotlib import cm

    import pandas as pd

    import seaborn as sns

    from scipy import interpolate

    #生成数据

    x = np.linspace(0.1,0.9,9)

    y = np.linspace(0.1,0.9,9)

    z = np.random.rand(81)

    #插值

    # xx, yy = np.meshgrid(x, y)

    f = interpolate.interp2d(x, y, z, kind='cubic')

    xnew = np.arange(0.1, 1, 0.03)

    ynew = np.arange(0.1, 1, 0.03)

    znew = f(xnew, ynew)

    #修改x,y,z输入画图函数前的shape

    xx1, yy1 = np.meshgrid(xnew, ynew)

    newshape = (xx1.shape[0])*(xx1.shape[0])

    y_input = xx1.reshape(newshape)

    x_input = yy1.reshape(newshape)

    z_input = znew.reshape(newshape)

    #画图

    sns.set(style='white')

    fig = plt.figure()

    ax = fig.add_subplot(111, projection='3d')

    ax.plot_trisurf(x_input,y_input,z_input,cmap=cm.coolwarm)

    plt.show()

    L3Byb3h5L2h0dHBzL2ltZzIwMTguY25ibG9ncy5jb20vYmxvZy8xMzM4OTkxLzIwMTkwMS8xMzM4OTkxLTIwMTkwMTExMTYwNjE0NzY3LTQzNTEyMjIwOC5wbmc=.jpg

    PYTHON画三维图

    import matplotlib.pyplot as pltfrom mpl_toolkits.mplot3d import Axes3Dimport numpy as np #bbb=[1 if ...

    CAD画三维图怎么渲染?一分钟教你快速操作

    从事过CAD相关工作的都知道,CAD绘制的方式有二维平面图以及三维图形,三维图形,画三维图方式也是比较简单的.那当然三维图画完后一般还需要进行渲染操作,步骤也是比较简洁的.下面就来给大家操作一下CAD ...

    python绘制三维图

    作者:桂. 时间:2017-04-27  23:24:55 链接:http://www.cnblogs.com/xingshansi/p/6777945.html 本文仅仅梳理最基本的绘图方法. 一. ...

    python读取三维点云球坐标数据并动态生成三维图像与着色

    关键步骤: 1.首先通过读取.txt文本数据并进行一系列字符串处理,提取显示所需要的相关数据矩阵 2.然后利用python的matplotlib库来进行动态三维显示 备注:matplotlib在显示2 ...

    matlab 画三维图函数

    matlab三维绘图 http://blog.sina.com.cn/s/blog_6d5ffd0d0100lyah.html Matlab绘图系列之高级绘图 http://blog.163.com/ ...

    matplotlib---插值画二维、三维图

    一.画二维图 1.原始数据(x,y) import matplotlib.pyplot as plt import numpy as np #数据 X = np.array(list(i for i ...

    用Python的Plotly画出炫酷的数据可视化&lpar;含各类图介绍,附代码&rpar;

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 我被狗咬了 在谈及数据可视化的时候,我们通常都会使用到matplo ...

    Python绘制六种可视化图表详解,三维图最炫酷!你觉得呢?

    Python绘制六种可视化图表详解,三维图最炫酷!你觉得呢? 可视化图表,有相当多种,但常见的也就下面几种,其他比较复杂一点,大都也是基于如下几种进行组合,变换出来的.对于初学者来说,很容易被这官网上 ...

    python中matplotlib画折线图实例(坐标轴数字、字符串混搭及标题中文显示)

    最近在用python中的matplotlib画折线图,遇到了坐标轴 "数字+刻度" 混合显示.标题中文显示.批量处理等诸多问题.通过学习解决了,来记录下.如有错误或不足之处,望请指 ...

    随机推荐

    SPOJ BOXES

    给出n个循环位置,每个位置有一定数量的盒子,每次操作可以使一个盒子转移到相邻位置,问最少需要转移多少次使得所有位置上的盒子的数量不会超过1个. 简单题.对于每个位置,加边(s,i,a[i],0),(i ...

    记录:js删除数组中某一项或几项的几种方法

    1:js中的splice方法 splice(index,len,[item])    注释:该方法会改变原始数组. splice有3个参数,它也可以用来替换/删除/添加数组内某一个或者几个值 inde ...

    PCL—低层次视觉—点云滤波(初步处理)

    点云滤波的概念 点云滤波是点云处理的基本步骤,也是进行 high level 三维图像处理之前必须要进行的预处理.其作用类似于信号处理中的滤波,但实现手段却和信号处理不一样.我认为原因有以下几个方面: ...

    Moving Acerage

    http://zh.wikipedia.org/zh/%E7%A7%BB%E5%8B%95%E5%B9%B3%E5%9D%87

    yum安装jdk

    安装步骤: 1.首先查看java的版本有哪些  :  yum -y list java* 2. 安装目标jdk版本(我选择的是1.7) :   yum -y install java-1.7.0-op ...

    联想G510 在新的SSD上安装Win8&period;1系统,启动的时候自己加载机械硬盘的Win8&period;1系统

    进入BIOS,选择Boot,将Boot Priority(优先),修改为Legacy(传统) First: 启动的时候就不会使用UEFI First的windows Boot Manager(wind ...

    7z常用命令行&amp&semi;7z检测压缩包完整性&amp&semi;7z压缩包错误不执行rsync同步

    7Z简介&常用命令 7Z脚本使用说明 7Z检测压缩包完整性脚本 7Z压缩包错误不执行Rsync脚本 1.7Z简介&常用命令 ⑴简介: 7z,全称7-Zip, 是一款开源软件.是目前公认 ...

    C&num;微信公众号开发入门教程

    首先打开开发文档: 微信公众号开发者文档:http://mp.weixin.qq.com/wiki/home/index.html 一.创建测试账号 可以先申请一个开发者测试账号

    php -- 连接Mysql 数据库

    ----- 022-mysql.php -----

    转:在ASP&period;NET MVC中通过URL路由实现对多语言的支持

    对于一个需要支持多语言的Web应用,一个很常见的使用方式就是通过请求地址来控制界面呈现所基于的语言文化,比如我们在表示请求地址的URL中将上语言文化代码(比如en或者en-US)来指导服务器应该采用怎 ...

    展开全文
  • 8.3 三维图形函数包 508 8.3.1 chartstyle2d类 509 8.3.2 point4类 515 8.3.3 dataseries类 516 8.3.4 chartfunctions类 521 8.3.5 drawchart类 526 8.4 曲面图的实现 541 8.4.1 网格图 541 8.4.2 幕布网格...
  • Matlab绘图-详细,全面(二维&三维等)

    万次阅读 多人点赞 2018-09-28 15:12:47
    强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形,这类函数称为高层绘图函数。此外,Matlab还提供了直接对图形句柄进行...

    原文

    Matlab绘图(图像为本人所绘)

    强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形,这类函数称为高层绘图函数。此外,Matlab还提供了直接对图形句柄进行操作的低层绘图操作。这类操作将图形的每个图形元素(如坐标轴、曲线、文字等)看做一个独立的对象,系统给每个对象分配一个句柄,可以通过句柄对该图形元素进行操作,而不影响其他部分。

    本章介绍绘制二维和三维图形的高层绘图函数以及其他图形控制函数的使用方法,在此基础上,再介绍可以操作和控制各种图形对象的低层绘图操作。

    一.二维绘图

    二维图形是将平面坐标上的数据点连接起来的平面图形。可以采用不同的坐标系,如直角坐标、对数坐标、极坐标等。二维图形的绘制是其他绘图操作的基础。

    一.绘制二维曲线的基本函数

    在Matlab中,最基本而且应用最为广泛的绘图函数为plot,利用它可以在二维平面上绘制出不同的曲线。

    1. plot函数的基本用法

    plot函数用于绘制二维平面上的线性坐标曲线图,要提供一组x坐标和对应的y坐标,可以绘制分别以x和y为横、纵坐标的二维曲线。plot函数的应用格式

    plot(x,y)     其中x,y为长度相同的向量,存储x坐标和y坐标。

    例51 在[0 , 2pi]区间,绘制曲线

    程序如下:在命令窗口中输入以下命令  

    >> x=0:pi/100:2*pi;

    >> y=2*exp(-0.5*x).*sin(2*pi*x);

    >> plot(x,y)

    程序执行后,打开一个图形窗口,在其中绘制出如下曲线

    注意:指数函数和正弦函数之间要用点乘运算,因为二者是向量。

     

    例52 绘制曲线

    这是以参数形式给出的曲线方程,只要给定参数向量,再分别求出x,y向量即可输出曲线:

    >> t=-pi:pi/100:pi;

    >> x=t.*cos(3*t);

    >> y=t.*sin(t).*sin(t);

    >> plot(x,y)

    程序执行后,打开一个图形窗口,在其中绘制出如下曲线

    以上提到plot函数的自变量x,y为长度相同的向量,这是最常见、最基本的用法。实际应用中还有一些变化。分别说明:

    2. 含多个输入参数的plot函数

    plot函数可以包含若干组向量对,每一组可以绘制出一条曲线。含多个输入参数的plot函数调用格式为:plot(x1,y1,x2,y2,…,xn,yn)

    如下列命令可以在同一坐标中画出3条曲线。

    >> x=linspace(0,2*pi,100);

    >> plot(x,sin(x),x,2*sin(x),x,3*sin(x))

    当输入参数有矩阵形式时,配对的x,y按对应的列元素为横坐标和纵坐标绘制曲线,曲线条数等于矩阵的列数。

     

    >> x=linspace(0,2*pi,100);

    >> y1=sin(x);

    >> y2=2*sin(x);

    >> y3=3*sin(x);

    >> x=[x;x;x]';

    >> y=[y1;y2;y3]';

    >> plot(x,y,x,cos(x))

    x,y都是含有三列的矩阵,它们组成输入参数对,绘制三条曲线;x和cos(x)又组成一对,绘制一条余弦曲线。

    利用plot函数可以直接将矩阵的数据绘制在图形窗体中,此时plot函数将矩阵的每一列数据作为一条曲线绘制在窗体中。如

    >> A=pascal(5)

    A =

         1     1     1     1     1

         1     2     3     4     5

         1      3     6    10    15

         1     4    10    20    35

         1     5    15    35    70

    >> plot(A)

    3. 含选项的plot函数

    Matlab提供了一些绘图选项,用于确定所绘曲线的线型、颜色和数据点标记符号。这些选项如表所示:

    线型

    颜色

    标记符号

    - 实线

    b蓝色

    .   点

    s 方块

    : 虚线

    g绿色

    o 圆圈

    d 菱形

    -. 点划线

    r红色

    × 叉号

    ∨朝下三角符号

    -- 双划线

    c青色

    + 加号

    ∧朝上三角符号

     

    m品红

    * 星号

    <朝左三角符号

     

    y黄色

     

    >朝右三角符号

     

    k黑色

     

    p 五角星

     

    w白色

     

    h 六角星

     

    例 用不同的线型和颜色在同一坐标内绘制曲线 及其包络线。

    >> x=(0:pi/100:2*pi)';

    >> y1=2*exp(-0.5*x)*[1,-1];

    >> y2=2*exp(-0.5*x).*sin(2*pi*x);

    >> x1=(0:12)/2;

    >> y3=2*exp(-0.5*x1).*sin(2*pi*x1);

    >> plot(x,y1,'k:',x,y2,'b--',x1,y3,'rp');

    在该plot函数中包含了3组绘图参数,第一组用黑色虚线画出两条包络线,第二组用蓝色双划线画出曲线y,第三组用红色五角星离散标出数据点。

    4. 双纵坐标函数plotyy

    在Matlab中,如果需要绘制出具有不同纵坐标标度的两个图形,可以使用plotyy函数,它能把具有不同量纲,不同数量级的两个函数绘制在同一个坐标中,有利于图形数据的对比分析。使用格式为:plotyy(x1,y1,x2,y2)

    x1,y1对应一条曲线,x2,y2对应另一条曲线。横坐标的标度相同,纵坐标有两个,左边的对应x1,y1数据对,右边的对应x2,y2。

    例:(略)

    二.绘制图形的辅助操作

    绘制完图形以后,可能还需要对图形进行一些辅助操作,以使图形意义更加明确,可读性更强。

    1. 图形标注

    在绘制图形时,可以对图形加上一些说明,如图形的名称、坐标轴说明以及图形某一部分的含义等,这些操作称为添加图形标注。有关图形标注函数的调用格式为:

    title(’图形名称’) (都放在单引号内)

    xlabel(’x轴说明’)

    ylabel(’y轴说明’)

    text(x,y,’图形说明’)

    legend(’图例1’,’图例2’,…) P190

    其中,title、xlabel和ylabel函数分别用于说明图形和坐标轴的名称。text函数是在坐标点(x,y)处添加图形说明。(P88 或用gtext命令)。legend函数用于绘制曲线所用线型、颜色或数据点标记图例,图例放置在空白处,用户还可以通过鼠标移动图例,将其放到所希望的位置。除legend函数外,其他函数同样适用于三维图形,在三维中z坐标轴说明用zlabel函数。

    上述函数中的说明文字,除了使用标准的ASCII字符外,还可以使用LaTex(一种流行的数学排版软件)格式的控制字符,这样就可以在图形上添加希腊字符,数学符号和公式等内容。在Matlab支持的LaTex字符串中,用/bf , /it , /rm控制字符分别定义黑体、斜体和正体字符,受LaTex字符串控制部分要加大括号{}括起来。例如,text(0.3,0.5,’the usful {/bf MATLAB}’),将使MATLAB一词黑体显示。一些常用的LaTex字符见表,各个字符可以单独使用也可以和其他字符及命令配合使用。如text(0.3 ,0.5 ,’sin({/omega}t+{/beta})’)

    将得到标注效果 。

    标识符

    符号

    标识符

    符号

    标识符

    符号

    /alpha

     

    /epsilon

     

    /infty

     

    /beta

     

    /eta

     

    /int

     

    /gamma

     

    /Gamma

     

    /partial

     

    /delta

     

    /Delta

     

    /leftarrow

     

    /theta

     

    /Theta

     

    /rightarrow

     

    /lambda

     

    /Lambda

     

    /downarrow

     

    /xi

     

    /Xi

     

    /uparrow

     

    /pi

     

    /Pi

     

    /div

     

    /omega

     

    /Omega

     

    /times

     

    /sigma

     

    /Sigma

     

    /pm

     

    /phi

     

    /Phi

     

    /leq

     

    /psi

     

    /Psi

     

    /geq

     

    /rho

     

    /tau

     

    /neq

     

    /mu

     

    /zeta

     

    /forall

     

    /nu

     

    /chi

     

    /exists

     

    2. 坐标控制

    在绘制图形时,Matlab可以自动根据要绘制曲线数据的范围选择合适的坐标刻度,使得曲线能够尽可能清晰的显示出来。所以,一般情况下用户不必选择坐标轴的刻度范围。但是,如果用户对坐标不满意,可以利用axis函数对其重新设定。其调用格式为

    axis([xmin xmax ymin ymax zmin zmax])

    如果只给出前四个参数,则按照给出的x、y轴的最小值和最大值选择坐标系范围,绘制出合适的二维曲线。如果给出了全部参数,则绘制出三维图形。

    axis函数的功能丰富,其常用的用法有:

    axis equal :纵横坐标轴采用等长刻度

    axis square:产生正方形坐标系(默认为矩形)

    axis auto:使用默认设置

    axis off:取消坐标轴

    axis on :显示坐标轴

    还有:给坐标加网格线可以用grid命令来控制,grid on/off命令控制画还是不画网格线,不带参数的grid命令在两种之间进行切换。

    给坐标加边框用box命令控制。和grid一样用法

    例 :绘制分段函数,并添加图形标注。(略)

    3. 图形保持

    一般情况下,每执行一次绘图命令,就刷新一次当前图形窗口,图形窗口原有图形将不复存在,如果希望在已经存在的图形上再继续添加新的图形,可以使用图形保持命令hold。hold on/off 命令是保持原有图形还是刷新原有图形,不带参数的hold命令在两者之间进行切换。

    例:(略)

    4. 图形窗口分割

    在实际应用中,经常需要在一个图形窗口中绘制若干个独立的图形,这就需要对图形窗口进行分割。分割后的图形窗口由若干个绘图区组成,每一个绘图区可以建立独立的坐标系并绘制图形。同一图形窗口下的不同图形称为子图。Matlab提供了subplot函数用来将当前窗口分割成若干个绘图区,每个区域代表一个独立的子图,也是一个独立的坐标系,可以通过subplot函数激活某一区,该区为活动区,所发出的绘图命令都是作用于该活动区域。调用格式:

    subplot(m,n,p)

    该函数把当前窗口分成m×n个绘图区,m行,每行n个绘图区,区号按行优先编号。其中第p个区为当前活动区。每一个绘图区允许以不同的坐标系单独绘制图形。

    例:(略)

    三.绘制二维图形的其他函数

    1. 其他形式的线性直角坐标图

    在线性直角坐标中,其他形式的图形有条形图、阶梯图、杆图和填充图等,所采用的函数分别为:

    bar(x,y,选项)      选项在单引号中

    stairs(x,y,选项)

    stem(x,y,选项)

    fill(x1,y1,选项1,x2,y2,选项2,…)

    前三个函数和plot的用法相似,只是没有多输入变量形式。fill函数按向量元素下标渐增次序依次用直线段连接x,y对应元素定义的数据点。

    例5-8:分别以条形图、填充图、阶梯图和杆图形式绘制曲线

    x=0:0.35:7;

    y=2*exp(-0.5*x);

    subplot(2,2,1);bar(x,y,'g');

    title('bar(x,y,''g'')');axis([0, 7, 0 ,2]);

    subplot(2,2,2);fill(x,y,'r');

    title('fill(x,y,''r'')');axis([0, 7, 0 ,2]);

    subplot(2,2,3);stairs(x,y,'b');

    title('stairs(x,y,''b'')');axis([0, 7, 0 ,2]);

    subplot(2,2,4);stem(x,y,'k');

    title('stem(x,y,''k'')');axis([0, 7, 0 ,2]);

    2. 极坐标图

    polar函数用来绘制极坐标图,调用格式为:

    polar(theta,rho,选项)

    其中,theta为极坐标极角,rho为极径,选项的内容和plot函数相似。

    例5-9:绘制 的极坐标图

     

    theta=0:0.01:2*pi;

    rho=sin(3*theta).*cos(5*theta);

    polar(theta,rho,'r');

    3. 对数坐标图

    在实际应用中,经常用到对数坐标,Matlab提供了绘制对数和半对数坐标曲线的函数,其调用格式为:

    semilogx(x1,y1,选项1,x2,y2,选项2,…)

    semilogy(x1,y1,选项1,x2,y2,选项2,…)

    loglog(x1,y1,选项1,x2,y2,选项2,…)

    这些函数中选项的定义和plot函数完全一样,所不同的是坐标轴的选取。semilogx函数使用半对数坐标,x轴为常用对数刻度,而y轴仍保持线性刻度。semilogy恰好和semilogx相反。loglog函数使用全对数坐标,x、y轴均采用对数刻度。

    例:略

    4. 对函数自适应采样的绘图函数

    5. 其他形式的二维图形

    二. 三维绘图

    一.绘制三维曲线的基本函数

    最基本的三维图形函数为plot3,它将二维绘图函数plot的有关功能扩展到三维空间,可以用来绘制三维曲线。其调用格式为:

    plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,…)

    其中每一组x,y,z组成一组曲线的坐标参数,选项的定义和plot的选项一样。当x,y,z是同维向量时,则x,y,z对应元素构成一条三维曲线。当x,y,z是同维矩阵时,则以x,y,z对应列元素绘制三维曲线,曲线条数等于矩阵的列数。

    例513 绘制空间曲线

    该曲线对应的参数方程为

    t=0:pi/50:2*pi;

    x=8*cos(t);

    y=4*sqrt(2)*sin(t);

    z=-4*sqrt(2)*sin(t);

    plot3(x,y,z,'p');

    title('Line in 3-D Space');

    text(0,0,0,'origin');

    xlabel('X');ylabel('Y');zlabel('Z');grid;

    二.三维曲面

    1.平面网格坐标矩阵的生成

    当绘制z=f(x,y)所代表的三维曲面图时,先要在xy平面选定一矩形区域,假定矩形区域为D=[a,b]×[c,d],然后将[a,b]在x方向分成m份,将[c,d]在y方向分成n份,由各划分点做平行轴的直线,把区域D分成m×n个小矩形。生成代表每一个小矩形顶点坐标的平面网格坐标矩阵,最后利用有关函数绘图。

    产生平面区域内的网格坐标矩阵有两种方法:

    利用矩阵运算生成。

    x=a:dx:b;

    y=(c:dy:d)’;

    X=ones(size(y))*x;

    Y=y*ones(size(x));

    经过上述语句执行后,矩阵X的每一行都是向量x,行数等于向量y的元素个数,矩阵Y的每一列都是向量y,列数等于向量x的元素个数。

    利用meshgrid函数生成;

    x=a:dx:b;

    y=c:dy:d;

    [X,Y]=meshgrid(x,y);

    语句执行后,所得到的网格坐标矩阵和上法,相同,当x=y时,可以写成meshgrid(x)

    2.绘制三维曲面的函数

    Matlab提供了mesh函数和surf函数来绘制三维曲面图。mesh函数用来绘制三维网格图,而surf用来绘制三维曲面图,各线条之间的补面用颜色填充。其调用格式为:

    mesh(x,y,z,c)

    surf(x,y,z,c)

    一般情况下,x,y,z是维数相同的矩阵,x,y是网格坐标矩阵,z是网格点上的高度矩阵,c用于指定在不同高度下的颜色范围。c省略时,Matlab认为c=z,也即颜色的设定是正比于图形的高度的。这样就可以得到层次分明的三维图形。当x,y省略时,把z矩阵的列下标当作x轴的坐标,把z矩阵的行下标当作y轴的坐标,然后绘制三维图形。当x,y是向量时,要求x的长度必须等于z矩阵的列,y的长度必须等于必须等于z的行,x,y向量元素的组合构成网格点的x,y坐标,z坐标则取自z矩阵,然后绘制三维曲线。

    例515 用三维曲面图表现函数 :

    为了便于分析三维曲面的各种特征,下面画出3种不同形式的曲面。

    %program 1

    x=0:0.1:2*pi;

    [x,y]=meshgrid(x);

    z=sin(y).*cos(x);

    mesh(x,y,z);

    xlabel('x-axis'),ylabel('y-axis'),zlabel('z-axis');

    title('mesh'); pause;

    %program 2

    x=0:0.1:2*pi;

    [x,y]=meshgrid(x);

    z=sin(y).*cos(x);

    surf(x,y,z);

    xlabel('x-axis'),ylabel('y-axis'),zlabel('z-axis');

    title('surf'); pause;

    %program 3

    x=0:0.1:2*pi;

    [x,y]=meshgrid(x);

    z=sin(y).*cos(x);

    plot3(x,y,z);

    xlabel('x-axis'),ylabel('y-axis'),zlabel('z-axis');

    title('plot3-1');grid;

    程序执行结果分别如上图所示。从图中可以发现,网格图(mesh)中线条有颜色,线条间补面无颜色。曲面图(surf)的线条都是黑色的,线条间补面有颜色。进一步观察,曲面图补面颜色和网格图线条颜色都是沿z轴变化的。用plot3 绘制的三维曲面实际上由三维曲线组合而成。可以分析plot(x’,y’,z’)所绘制的曲面的特征。

    例516 绘制两个直径相等的圆管相交的图形。

    m=30;

    z=1.2*(0:m)/m;

    r=ones(size(z));

    theta=(0:m)/m*2*pi;

    x1=r'*cos(theta);y1=r'*sin(theta);%生成第一个圆管的坐标矩阵

    z1=z'*ones(1,m+1);

    x=(-m:2:m)/m;

    x2=x'*ones(1,m+1);y2=r'*cos(theta);%生成第一个圆管的坐标矩阵

    z2=r'*sin(theta);

    surf(x1,y1,z1);          %绘制竖立的圆管

    axis equal ,axis off

    hold on

    surf(x2,y2,z2);          %绘制平放的圆管

    axis equal ,axis off

    title ('两个等直径圆管的交线');

    hold off

     

    例517 分析由函数 构成的曲面形状与平面z=a的交线。

    此外,还有两个和mesh函数相似的函数,即带等高线的三维网格曲面函数meshc和带底座的三维网格曲面函数meshz,其用法和mesh类似。不同的是,meshc还在xy平面上绘制曲面在z轴方向的等高线,meshz还在xy平面上绘制曲面的底座。

    surf函数也有两个类似的函数,即具有等高线的曲面函数surfc和具有光照效果的曲面函数surfl。

    例518 在xy平面内选择[-8, 8]×[-8, 8]绘制函数,

    [x,y]=meshgrid(-8:0.5:8);

    z=sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2+eps);

    subplot(2,2,1);

    meshc(x,y,z);

    title('meshc');

    subplot(2,2,2);

    meshz(x,y,z);

    title('meshz');

    subplot(2,2,3);

    surfc(x,y,z);

    title('surfc');

    subplot(2,2,4);

    surfl(x,y,z);

    title('surfl');

    3.标准三维曲面

    Matlab提供了一些函数用于绘制标准三维曲面,这些函数可以产生相应的绘图数据,常用于三维图形的演示。如,sphere函数和cylinder函数分别用于绘制三维球面和柱面。sphere函数的调用格式为:

    [x,y,z]=sphere(n);

    该函数将产生(n+1)×(n+1矩阵x,y,z 。采用这三个矩阵可以绘制出圆心位于原点、半径为1的单位球体。若在调用该函数时不带输出参数,则直接绘制所需球面。n决定了球面的圆滑程度,其默认值为20。若n值取的比较小,则绘制出多面体的表面图。

    cylinder函数的调用格式为:

    [x,y,z]=cylinder(R,n)

    其中R是一个向量,存放柱面各个等间隔高度上的半径,n表示在圆柱圆周上有n个间隔点,默认有20个间隔点。如:cylinder(3)生成一个圆柱,cylinder([10,1])生成一个圆锥。而t=0:pi/100:4*pi; R=sin(t); cylinder(R,30);生成一个正弦圆柱面。

    另外Matlab还提供了一个peaks函数,称为多峰函数,常用于三维曲面的演示。该函数可以用来生成绘图数据矩阵,矩阵元素由函数:

     

    在矩形区域[-3 3]×[-3 3]的等分网格点上的函数值确定。如:z=peaks(30)

    将生成一个30×30矩阵,

    例519 绘制标准三维曲面图形

    t=0:pi/20:2*pi;

    [x,y,z]=cylinder(2+sin(t),30);

    subplot(1,3,1);

    surf(x,y,z);

    subplot(1,3,2);

    [x,y,z]=sphere;

    surf(x,y,z);

    subplot(1,3,3);

    [x,y,z]=peaks(30);

    meshz(x,y,z);

     

    3.其他三维图形。

    在介绍二维图形时,曾经提到条形图、杆图、饼图和填充图等特殊图形,它们还可以以三维形式出现,其函数分别为bar3,stem3,pie3和fill3。

    bar3绘制三维条形图,常用格式为:

    bar3(y);

    bar3(x,y)

    在第一种格式中,y的每个元素对应于一个条形。第二种格式在x指定的位置上绘制y中元素的条形图。

    stem3函数绘制离散序列数据的三维杆图,常用格式为:

    stem3(z)

    stem3(x,y,z)

    第一种格式将数据序列z表示为从xy平面向上延伸的杆图,x和y自动生成。第二种格式在x和y指定的位置上绘制数据序列z的杆图,x,y,z的维数要相同。

    pie3函数绘制三维饼图,常用格式为:

    pie3(x)

    x为向量,用x中的数据绘制一个三维饼图。

    fill3函数可在三维空间内绘制出填充过的多边形,常用格式为:

    fill3(x,y,z,c)

    用x,y,z做多边形的顶点,而c指定了填充的颜色。

    例520 绘制三维图形。

    1绘制魔方阵的三维条形图2以三维杆图形式绘制曲线y=2sinx 3已知x =[2347,1827,2043,3025] ,绘制三维饼图     4用随机的顶点坐标值画出5个黄色三角形

    subplot(2,2,1);

    bar3(magic(4));

    subplot(2,2,2);

    y=2*sin(0:pi/10:2*pi);

    stem3(y);

    subplot(2,2,3);

    pie3([2347,1827,2043,3025]);

    subplot(2,2,4);

    fill3(rand(3,5),rand(3,5),rand(3,5),'y');

    除了上面讨论的三维图形外,常用的图形还有瀑布图和三维曲面的等高线图。绘制瀑布图用waterfall函数,用法和meshz函数相似,只是它的网格线在x轴方向出现,具有瀑布效果。等高线图分二维和三维两种形式,分别使用函数contour和contour3绘制。

    例521 绘制多峰函数的瀑布图和等高线图。

     

    subplot(1,2,1);

    [X,Y,Z]=peaks(30);

    waterfall(X,Y,Z);

    xlabel('XX');ylabel('YY');zlabel('ZZ');

    subplot(1,2,2);

    contour3(X,Y,Z,12,'k');%其中12代表高度的等级数

    xlabel('XX');ylabel('YY');zlabel('ZZ');

    三.三维图形的精细处理

    一.视点处理

    在日常生活中,从不同的角度观察物体,所看到的物体形状是不一样的。同样,从不同视点绘制的三维图形的形状也是不一样的。视点位置可由方位角和仰角表示。

    方位角

    Matlab提供了设置视点的函数view,其调用格式为:

    view(az,el)

    其中az为方位角,el为仰角,它们均以度为单位。系统默认的视点定义为方位角为-37.5度,仰角30度。

    例522 从不同视点绘制多峰函数曲面。

     

    subplot(2,2,1);mesh(peaks);

    view(-37.5,30);

    title('1');

    subplot(2,2,2);mesh(peaks);

    view(0,90);

    title('2');

    subplot(2,2,3);mesh(peaks);

    view(90,0);

    title('3');

    subplot(2,2,4);mesh(peaks);

    view(-7,-10);

    title('4');

    二.色彩处理

    三.图形的裁剪处理

    Matlab定义的NaN常数可以用于表示那些不可使用的数据,利用这些特性,可以将图形中需要裁剪部分对应的函数值设置成NaN,这样在绘制图形时,函数值为NaN的部分将不显示出来,从而达到对图形进行裁剪的目的。例如,要削掉正弦波顶部或底部大于0.5的部分,可使用下面的程序。

    x=0:pi/10:4*pi;

    y=sin(x);

    i=find(abs(y)>0.5);

    x(i)=NaN;

    plot(x,y);

    例524 绘制两个球面,其中一个在另一个里面,将外面的球裁掉一部分,以便能看到里面的球。

    [x,y,z]=sphere(25);

    %生成外面的大球

    z1=z;

    z1(:,1:4)=NaN;%将大球裁去一部分

    c1=ones(size(z1));

    surf(3*x,3*y,3*z1,c1);       %生成里面的小球

    hold on

    z2=z;

    c2=2*ones(size(z2));

    c2(:,1:4)=3*ones(size(c2(:,1:4)));

    surf(1.5*x,1.5*y,1.5*z2,c2);

    colormap([0 1 0;0.5 0 0;1 0 0]);

    grid on

    hold off

     

    色图中使用三种颜色,外面的球是绿色,里面的球采用深浅不同的两种红色。

    四.隐函数作图

    如果给定了函数的显式表达式,可以先设置自变量向量,然后根据表达式计算函数向量,从而用plot等函数绘制出图形。但是当函数采用隐函数形式时,如: ,则很难利用上述方法绘制图形。Matlab提供了一个ezplot函数绘制隐函数图形。用法如下:

    ①     对于函数f=f(x),ezplot的调用格式为:

    ezplot(f),在默认区间(-2pi,2pi)绘制图形。

    ezplot(f,[a,b]),在区间(a,b)绘制

    ②     对于隐函数f=f(x,y),ezplot的调用格式为;

    ezplot(f),在默认区间(-2pi,2pi),(-2pi,2pi)绘制f(x,y)=0的图形。

    ezplot(f,[xmin,xmax,ymin,ymax]);在区间          绘制图形。

    ezplot(f,[a,b]),在区间(a,b),(a,b)绘制

    ③     对于参数方程x=x(t),y=y(t),ezplot函数的调用格式为:

    ezplot(x,y),在默认区间 绘制x=x(t),y=y(t)图形。

    ezplot(x,y,[tmin,tmax]),在区间(tmin,tmax)绘制x=x(t),y=y(t)图形。

    例525 隐函数绘图举例。

     

    subplot(2,2,1);

    ezplot('x^2+y^2-9');axis equal;

    subplot(2,2,2);

    ezplot('x^3+y^3-5*x*y+1/5')

    subplot(2,2,3);

    ezplot('cos(tan(pi*x))',[0,1]);

    subplot(2,2,4);

    ezplot('8*cos(t)','4*sqrt(2)*sin(t)',[0,2*pi]);

    其他隐函数绘图还有,ezpolar,ezcontour,ezplot3,ezmesh,ezmeshc,ezsurf,ezsurfc。

    展开全文
  • 1.5三维空间数据模型与三维空间数据结构的区别 ;2.1三维空间数据模型的分类;三维空间数据模型;面模型(Surface Graphics) ;体模型(Volume Graphics;[1]基于镶嵌的数据模型 (1)四面体格网模型(TEN;用四面体格网表示...
  •  参数有个:GL_PROJECTION 投影, GL_MODELVIEW 模型视图, GL_TEXTURE 纹理. 即表示:接下来要对投影/模型视图/纹理进行操作 2、glLoadIdentity(); 将当前矩阵变为单位矩阵,无需参数 3、glFrustum(GLdouble ...
  • 二维正态随机变量概率密度函数三维图的matlab实现 1.二维正态随机变量 二维正态随机变量是最常见的一种二维随机变量分布。其联合概率密度函数为: p(x,y)=12πσXσY1−r2⋅exp{−12(1−r2)[(x−mX2)σX2−2r(x−mX)...
  • matlab绘图与图像处理(三维图形

    千次阅读 2014-04-16 09:31:14
    7.2 三维图形 7.2.1 三维曲线、面填色命令 命令1 comet3 功能 三维空间中的彗星图。彗星图为一个三维的动画图像,彗星头(一个小圆圈)沿着数据指定的轨道前进,彗星体为跟在彗星头后面的一段痕迹,...
  • 目录来源方法surf函数实例二维数据解决方案其他方案常见错误surf报错生成的图形是黑色生成曲面光滑参考资料 来源 写论文,从二维变三维空间,对三维工作空间分析,希望创建漂亮的工作空间示意图。二维区域着色已经在...
  • 5个目标文件,演示Address EJB的实现 ,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...
  • 12.13 二特殊图形函数

    千次阅读 2016-12-25 10:58:00
    在MATLAB中,除了可以通过plot函数等绘制特殊图形外,还可以通过一些函数绘制柱状图,饼状图等特殊图形。常见的特殊二维图形函数 函数名 说明 函数名 说明  area 
  • 利用PCL库做简单的三维立体图形

    千次阅读 2014-01-14 17:16:21
    利用PCL库画简单的三维立体图形需要知道各种图形的参数方程,然后给每个参数赋值便可以。 圆柱面的参数方程为:x = R*cos(θ); y = R*sin(θ); z = z;其中 θ范围是[-2*PI, 2*PI), z的范围是(-∞,+∞) 球面...
  • 如果是画隐函数 v = f = 0 的三维图形,那么等值面的数值为isovalue = 0。 2. patch函数 调用格式:patch 以平面坐标为顶点,构造平面多边形,C是RGB颜色向量 patch以空间3-D坐标为顶点,构造空间3D曲面,C是...
  • 考研数学常见函数图像

    千次阅读 2021-05-07 12:28:28
    y=sin⁡1xy=\sin \frac{1}{x}y=sinx1​ y=sin⁡xxy=\frac{\sin x}{x}y=xsinx​ y=xsin⁡1xy=x\sin {\frac{1}{x}}y=xsinx1​ ...y=arcsinxy=arcsin xy=arcsinx ...y=arccotxy=arccot xy=arcc..
  • 3维图形旋转

    千次阅读 2020-03-14 16:36:24
    表示三维空间的旋转有多种互相等价的方式,常见的有旋转矩阵、DCM、旋转向量、四元数、欧拉角等。本篇文章主要梳理一下这些表示方式及相互转换的方法。(自我理解:三维物体在xyz坐标中,绕任意两个轴旋转就可以遍历...
  • 原文链接:http://blog.csdn.net/leo2351960/article/details/37655089 Plot3,绘制三维曲线,与plot命令类似,用法为 [html] view ...plot3命令只能绘制出三维的曲线,并不能绘制出三维
  • 三维图像分类、语义分割和重建

    千次阅读 2020-08-29 22:24:45
    三维图像分类、语义分割和重建引言1 三维数据的深度学习原理1.1 三维数据表示方法1.2 神经网络的优势1.2.1 三维图的构成1.2.2 多视觉图像1.2.3 点云1.2.4 图模型1.3 图像分类和语义分割1.4 三维重建1.4.1 问题陈述和...
  • 三维重建基础

    万次阅读 多人点赞 2016-06-01 19:12:13
    三维重建技术通过深度数据获取、预处理、点云配准与融合、生成表面等过程,把真实场景刻画成符合计算机逻辑表达的数学模型。这种模型可以对如文物保护、游戏开发、建筑设计、临床医学等研究起到辅助的作用。1.1 研究...
  • 三维模型表面积和体积计算

    千次阅读 2021-07-31 18:56:46
    常见的有:基于图元的CAD模型、三维点云、Mesh网格模型、体素化模型、八叉树表示、TSDF表示等 三维点云 点云是指透过3D扫描器所得到的形式。 扫描资料以点的形式记录,每一个点包含有三维坐标,有些可能含有色彩...
  • Matlab绘图

    千次阅读 2018-05-27 10:36:24
    强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形,这类函数称为高层绘图函数。此外,Matlab还提供了直接对图形句柄进行...
  • 三维重建:三维重建基础

    千次阅读 2019-04-10 13:55:24
    三维重建技术通过深度数据获取、预处理、点云配准与融合、生成表面等过程,把真实场景刻画成符合计算机逻辑表达的数学模型。这种模型可以对如文物保护、游戏开发、建筑设计、临床医学等研究起到辅助的作用。 1.1 ...
  • 常见三维重建算法及其实现(含源码下载链接)

    万次阅读 多人点赞 2016-10-01 17:36:44
    这里三维重建,输入的是断层图像切片,节选于自己毕业设计,文末贴出一些关键代码。 三维重建的方法大概有两种:直接将体素投影到计算机显示平面的方法被称为体绘制(Volume Rendering),也可以被称为直接绘制;...
  • 三维重建算法综述|传统+深度学习

    千次阅读 多人点赞 2020-02-22 13:14:08
    来源:基于深度学习的三维重建算法综述 00 前言 01 基于传统多视图几何的三维重建算法 1.1 主动式 (1)结构光 (2)TOF 激光飞行时间法 (3)三角测距法 1.2 被动式 (1)单目视觉 (2)双目/多目视觉 1.3 基于...
  • 利用matlab实现非线性拟合0 前言1 线性拟合1.1 多项式拟合1.2 线性拟合2 一非线性拟合2.1 简单的非线性拟合2.2 matlab中Curve Fitting App2.3 matlab中非线性拟合的实现2.3.1 fit()函数2.3.2 nlinfit()函数2.3.3 ...
  • matlab二维图形的绘制

    千次阅读 2014-04-23 14:55:12
    常用的二维图形命令:plot:绘制二维图形 loglog:用全对数坐标绘图 semilogx:用半对数坐标(X)绘图 semilogy:用半对数坐标(Y)绘图 fill: 绘制二维多边填充图形 polar:绘极坐标图 bar:画条形图 stem:画离散...
  • 基于深度学习的三维重建算法综述

    千次阅读 2020-02-21 08:00:00
    点击上方“3D视觉工坊”,选择“星标”干货第一时间送达00 前言目前,三维重建技术已在游戏、电影、测绘、定位、导航、自动驾驶、VR/AR、工业制造以及消费品领域等方面得到了广泛的应用。方...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 23,811
精华内容 9,524
关键字:

常见三维图形函数