精华内容
下载资源
问答
  • 代码绘制并创建旋转椭圆的电影
  • MATLAB椭球面的绘制

    2013-12-15 20:24:48
    MATLAB,椭圆的绘制,用的是mesh命令。也可以用surf命令,这个比较简单易懂
  • 好吧,比我想象的要容易。有一个alphahull选项,它要求自动计算相应的三角剖分。在from plotly.offline import iplot, init_notebook_modefrom plotly.graph_objs import Mesh3dfrom numpy import sin, cos, pi# ...

    好吧,比我想象的要容易。有一个alphahull选项,它要求自动计算相应的三角剖分。在from plotly.offline import iplot, init_notebook_mode

    from plotly.graph_objs import Mesh3d

    from numpy import sin, cos, pi

    # some math: generate points on the surface of ellipsoid

    phi = np.linspace(0, 2*pi)

    theta = np.linspace(-pi/2, pi/2)

    phi, theta=np.meshgrid(phi, theta)

    x = cos(theta) * sin(phi) * 3

    y = cos(theta) * cos(phi) * 2

    z = sin(theta)

    # to use with Jupyter notebook

    init_notebook_mode()

    iplot([Mesh3d({

    'x': x.flatten(),

    'y': y.flatten(),

    'z': z.flatten(),

    'alphahull': 0

    })])

    BhKs8.png

    这是R版:

    ^{pr2}$

    编辑:也可以使用type='surface'生成参数图:在这种情况下,必须提供二维x和{}。在library(plotly)

    library(pracma)

    mgrd

    U

    V

    frame

    plot_ly(frame, type='surface', x=x, y=y, z=z, showlegend=F, showscale=F,

    colorscale=list(list(0, 'blue'), list(1, 'blue')))

    展开全文
  • 维基百科上的椭圆文章有一个简单的JavaScript代码来绘制椭圆。它使用参数forms:x(theta) = a0 + ax*sin(theta) + bx*cos(theta) y(theta) = b0 + ay*sin(theta) + by*cos(theta)哪里(a0,b0) is the center of the ...

    维基百科上的椭圆文章有一个简单的JavaScript代码来绘制椭圆。

    它使用参数forms:

    x(theta) = a0 + ax*sin(theta) + bx*cos(theta) y(theta) = b0 + ay*sin(theta) + by*cos(theta)

    哪里

    (a0,b0) is the center of the ellipse (ax,ay) vector representing the major axis (bx,by) vector representing the minor axis

    我将代码翻译成MATLAB函数:

    calculateEllipse.m

    function [X,Y] = calculateEllipse(x, y, a, b, angle, steps) %# This functions returns points to draw an ellipse %# %# @param x X coordinate %# @param y Y coordinate %# @param a Semimajor axis %# @param b Semiminor axis %# @param angle Angle of the ellipse (in degrees) %# narginchk(5, 6); if nargin<6, steps = 36; end beta = -angle * (pi / 180); sinbeta = sin(beta); cosbeta = cos(beta); alpha = linspace(0, 360, steps)' .* (pi / 180); sinalpha = sin(alpha); cosalpha = cos(alpha); X = x + (a * cosalpha * cosbeta - b * sinalpha * sinbeta); Y = y + (a * cosalpha * sinbeta + b * sinalpha * cosbeta); if nargout==1, X = [XY]; end end

    并用一个例子来testing它:

    %# ellipse centered at (0,0) with axes length %# major=20, ,minor=10, rotated 50 degrees %# (drawn using the default N=36 points) p = calculateEllipse(0, 0, 20, 10, 50); plot(p(:,1), p(:,2), '.-'), axis equal

    展开全文
  • Matlab绘制曲面

    千次阅读 2020-12-30 17:08:18
    本文整理了一些三维绘图的内容,代码都比较简单1、surf、surfc、surfl之后可以试试shading interp2、绘制隐函数3、参数方程绘制曲面4、三维到平面:等高线+引力线5、快速绘制球面(椭球面)6、绘制旋转面7、绕轴旋转8...

    本文整理了一些三维绘图的内容,代码都比较简单

    1、surf、surfc、surfl之后可以试试shading interp

    2、绘制隐函数

    3、参数方程绘制曲面

    4、三维到平面:等高线+引力线

    5、快速绘制球面(椭球面)

    6、绘制旋转面

    7、绕轴旋转

    8、分段曲面

    1、surf、surfc、surfl之后可以试试shading interp

    >> [X Y]=meshgrid(linspace(-2,2),linspace(-2,2));

    >> Z=exp(-X.^2-Y.^2);

    >> subplot(2,1,1);surf(X,Y,Z);subplot(2,1,2);surf(X,Y,Z);shading interp

    2、绘制隐函数

    二维使用ezplot,三维使用ezimplot3(需安装)

    >> f1='x^2+(y-(x^2)^(1/3))^2-1';f2='x*sin(y+z^2)+y^2*cos(x+z)+z*x*cos(z+y^2)';

    >> subplot(1,2,1);ezplot(f1,[-1,1,-1,1.6]);subplot(1,2,2);ezimplot3(f2,[-1,1])

    3、参数方程绘制曲面

    莫比乌斯环,其中u、v是参数

    >> syms u v;

    >> x=cos(u)+v*cos(u)*cos(u/2);

    >> y=sin(u)+v*sin(u)*cos(u/2);

    >> z=v*sin(u/2);

    >> ezsurf(x,y,z,[0,2*pi,-0.5,0.5])

    4、三维到平面:等高线+引力线

    >> syms x y;z(x,y)=(x^2-2*x)*exp(-x^2-y^2-x*y);

    >> zx=diff(z,x);zy=diff(z,y);

    >> [X,Y]=meshgrid(-3:.1:2,-2:.1:2);Z=double(z(X,Y));

    >> ZX=double(zx(X,Y));ZY=double(zy(X,Y));

    >> subplot(1,2,1);surf(X,Y,Z);shading interp;zlim([-0.7 1.5]);

    >> subplot(1,2,2);contour(X,Y,Z,30);

    >> hold on;quiver(X,Y,-ZX,-ZY)

    5、快速绘制球面(椭球面)

    [x y z]=sphere(50);surf(x,y,z);

    %单位球面,50多面形数量(越多图越精确)

    %修改x、y、z可以作出任意位置的球、椭球

    %当然前面的隐函数也可以绘制

    6、绘制旋转面

    生成柱面的方程

    \[r_1(z)=1,0

    \]

    \[r_2(z)=e^{-\frac{z^2}{2}}\sin z,-1

    \]

    \(r(z)\) 表示到曲面上\(z\)坐标的点到\(z\)轴的距离

    >> subplot(1,2,1);[x,y,z]=cylinder(1);surf(x,y,z)

    >> subplot(1,2,2);

    >> z0=-1:0.1:3;r=exp(-z0.^2/2).*sin(z0);

    >> [x,y,z]=cylinder(r);

    >> z=-1+4*z;surf(x,y,z);

    7、绕轴旋转

    以六中的图2为例

    >> z0=-1:0.1:3;r=exp(-z0.^2/2).*sin(z0);

    >> [x,y,z]=cylinder(r);z=-1+4*z;h=surf(x,y,z);

    >> r_ax=[0 0 1] %该点与坐标原点的连线为旋转轴

    >> axis tight; %保证尺度不变

    >> for i=0:360

    rotate(h,r_ax,1);

    pause(0.02),

    end

    %循环结构每0.02s转动1°,循环360次

    8、分段曲面

    \[p(x_1,x_2)=\begin{cases}0.5457e^{-0.75x_2^2-3.75x_1^2-1.5x_1},&x_1+x_2>1\\0.7575e^{-x_2^2-6x_1^2},&-1

    \]

    >> [x y]=meshgrid(-1:.04:1,-2:.04:2);

    >> z=0.5457*exp(-0.75*y.^2-3.75*x.^2-1.5*x).*(x+y>1)+...

    0.7575*exp(-y.^2-6*x.^2)&((x+y>-1)&(x+y)<=1)+...

    0.5457*exp(-0.75*y.^2-3.75*x.^2+1.5*x).*(x+y

    >> surf(x,y,z);shading flat;

    展开全文
  • matlab拟合三维椭球

    2021-04-25 10:47:06
    % 作者:半人马alpha % 适用于你说的情况 % 你的数据拟合结果是一个旋转双曲面(a,c均为虚数,即 a^2,c^2) % 我按拟合出的参数给你把图画了一下,是旋转双曲面的一支 % step0:生成拟合数据(例) x = [0,0,0,0,0,0,0...

    同学问的,查了下资料。

    %需要拟合的点的坐标为(0,-174.802,990.048),(0.472,-171.284,995.463),(0.413,-168.639,1003.55),(0.064,-167.862,1019.55),

    %(0,-170.357,1035.44),(0,-172.142,1044.78),(0.215,-174.759,1047.84),(0.171,-176.586,1048.13),(0,-179.832,1043.34),(0,181.589,1040.11),(0,-182.76,1032.62),(0,-184.13,1017.55),(0.113,-183.445,1003.17)

    function my_fit_new()

    % 日期:2011年12月29日

    % 作者:半人马alpha

    % 适用于你说的情况

    % 你的数据拟合结果是一个旋转双曲面(a,c均为虚数,即 a^2<0,c^2<0)

    % 我按拟合出的参数给你把图画了一下,是旋转双曲面的一支

    % step0:生成拟合数据(例)

    x = [0,0,0,0,0,0,0,0.064,0.113,0.171,0.215,0.413,0.472]';

    y = [-174.802,-170.357,-172.142,-179.832,181.589,-182.760,-184.130,-167.862,-183.445,-176.586,-174.759,-168.639,-171.284]';

    z = [990.048,1035.44,1044.78,1043.34,1040.11,1032.62,1017.55,1019.55,1003.17,1048.13,1047.84,1003.55,995.463]';

    % step1:拟合,k表示系数,行向量

    % 待拟合方程:F = z^2 = (-c^2/a^2*x^2) + (c^2/a^2*2*x1*x) + (- c^2/b^2*y^2) +

    % (c^2/b^2*2*y1*y) + (2*z1*z) +

    % (-c^2/a^2*x1^2 - c^2/b^2*y1^2 - z1^2 + c^2)

    % x,y,z 均要先转化为列向量

    % k(1) = -c^2/a^2 由k值就可求出椭圆所有参数!!!

    % k(2) = c^2/a^2*2*x1

    % k(3) = - c^2/b^2

    % k(4) = c^2/b^2*2*y1

    % k(5) = 2*z1

    % k(6) = -c^2/a^2*x1^2 - c^2/b^2*y1^2 - z1^2 + c^2

    xdata = [x,y,z];

    ydata = z.^2; %% 先把 z 值平方,再进行拟合

    k0 = ones(1,6); %% k 的运行初值,不会影响最终结果

    F = @(k,xdata) k(1)*xdata(:,1).^2 + k(2)*xdata(:,1) + k(3)*xdata(:,2).^2 + k(4)*xdata(:,2) + k(5)*xdata(:,3) + k(6);

    [k,resnorm]=lsqcurvefit(F,k0,xdata,ydata);

    % step2:椭圆参数求解

    x1 = -k(2)/k(1)/2;

    y1 = -k(4)/k(3)/2;

    z1 = k(5)/2;

    c = sqrt(z1^2 + k(6) - k(1)*x1^2 - k(3)*y1^2);

    a = c/sqrt(-k(1));

    b = c/sqrt(-k(3));

    disp('x1:');

    disp(x1);

    disp('y1:');

    disp(y1);

    disp('z1:');

    disp(z1);

    disp('a轴:');

    disp(a);

    disp('b轴:');

    disp(b);

    disp('c轴:');

    disp(c);

    end

    展开全文
  • 给定的程序是生成椭圆并相对于中心旋转它...... 任何人都可以为我提供一个程序来旋转椭圆的焦点......?
  • 答:用matlab绘制椭球体的函数为: ellipsoid 调用语法 [x,y,z] = ellipsoid(xc,yc,zc,xr,yr,zr,n) [x,y,z] = ellipsoid(xc,yc,zc,xr,yr,zr) ellipsoid(axes_handle,...) ellipsoid(...) 对应的参数如下 (X-XC)^2 (Y...
  • Matlab 三维作图

    2020-12-21 11:22:13
    一个可透视的椭球figurea = 15;b = 10;c = 5;k = 5;n = 2^k-1;theta = pi*(-n:2:n)/n;phi = (pi/2)*(-n:2:n)'/n;X = a*cos(phi)*cos(theta);Y = b*cos(phi)*sin(theta);Z = c*sin(phi)*ones(size(theta));surf(X,Y...
  • matlab怎么绘制一条曲线绕z轴旋转生成的曲面?已知数据如下:x z y-398.10815554637100 391.8559758318630 690.066133543041-381.07955594867500 424.8310441553090 658.180381257343-360.31045913580800 454....
  • matlab绘制单叶双曲面

    千次阅读 2021-04-18 12:02:32
    应用 MATLAB 绘制二次曲面图 1、用 surf 工 mesh 函数绘图 Surf 函数绘制的是三维表面图,mesh 函数绘制的是三...静态螺旋线 a...Matlab绘制常见三维图形[转] (2011-02-18 21:07:40) 转载 标签: 分类: ...单叶双曲面...
  • ***************************************统计中经常会遇到求置信区间、置信区域(如置信椭圆、置信椭球)等,有时候需要把置信区域出来,这样看起看更为直观,下面结合具体案例介绍调用自编函数ConfidenceRegion...
  • 答:>> [x,y]=meshgrid(-10:0.1:10); z=2*sqrt((x.^2+y.^2)/9-1); z((x.^2+y.^2)/9-1答:-1.5:0.1:1.5; y=-1.5:0.1:1.5; [X,Y]=meshgrid(x,y); Z=0.5*(X.^2/a-Y.^2/b);... 椭球面: theta=0...
  • MATLAB还有其他各种二维绘图函数,以适合不同的应用,详见下当资料点数量不多时,长条图是很适合的表示方式:close all; % 关闭所有的图形视窗x=1:10;y=rand(size(x));bar(x,y);如果已知资料的误差量,就可用error...
  • 应用MATLAB绘制二次曲面图.doc

    千次阅读 2021-04-18 12:52:00
    应用MATLAB绘制二次曲面图应用MATLAB绘制二次曲面图用surf工mesh函数绘图Surf函数绘制的是三维表面图,mesh函数绘制的是三维网格图,当二次曲面方程是标准方程时,原方程式可化为时,我们就用这两种函数完成绘图。...
  • 1、用matlabc打开命令行窗口,直接输入相关的内容。 2、下一步如果没问题,就根据实际情况来设置图示的代码。 3、这个时候通过确定操作以后,需要填写注释的信息。 4、这样一来会得到对应的效果图,即可出函数曲线...
  • 一、折射率椭球.ppt

    2021-04-21 07:56:50
    一、折射率椭球§4-2-2光在晶体中传播的几何法描述 由于晶体光学问题的复杂性,在实际工作中常常要使用一些表示晶体光学性质的几何图形来帮助说明问题,常用的有折射率椭球、波矢面、法线面和光线面等。 利用这些...
  • 实际上,我们对原始椭圆作一个平移变换(x-u)和一个旋转变换(V*),可以使其中心平移到原点,长短轴的方向与坐标轴重合。而绘等概率椭圆的过程则与此相反,先用标准的椭圆方程产生组成曲线的离散点,然后经过相反的...
  • 一般空间曲线的旋转曲面、椭球面、单叶双曲面,双叶曲面
  • ellipse所属分类:matlab例程开发工具:matlab文件大小:2KB下载次数:467上传日期:2008-08-29 10:25:22上 传 者:合愀说明:MATLAB椭圆的自定义函数:ellipse,用后才会发现这个函数的强大功能!在ellipse之...
  • MATLAB 常见二次曲面汇总

    千次阅读 多人点赞 2020-03-30 14:18:20
    title('旋转抛物面') 或直接用:ezsurfc('(X.^2+Y.^2)./4') 三、椭圆柱面 load clown ezsurf('(2*cos(u))','4*sin(u)','v',[0,2*pi,0,2*pi]) view(-105,40) %视角处理 shading interp %灯光处理 colormap(map) ...
  • 如何双叶双曲面

    千次阅读 2021-04-18 12:03:18
    % 一般在球状、椭球状模型时才需要构建复数数据网格(圆面),否则一般构建矩形数据网格。 % 0: 不构建; % >0:产生(is_cplxgrid+1)*(2*is_cplxgrid+1)的极坐标下的复数数据网格,最大半径为1的圆面。 % x_...
  • 椭圆相关函数图像的matlab实验报告

    千次阅读 2020-05-18 22:44:07
    2.用matlab命令绘制与椭圆相关的函数图像 3. 通过作图,进一步加深对椭圆相关函数的理解 二、实验内容 1.椭圆 : x^2/16 + y^2/9 = 1 (1)间接法 (改为参数方程x=4cost y=3sint ) Matlab代码如下: t=0:0.1:2*pi...
  • 数学实验 常见空间曲线和曲面 常见空间曲线与曲面方程 椭球面 单叶双曲面 双叶双曲面 椭圆抛物面 双曲抛物面 圆柱螺线和圆锥螺线 抛物螺线 轴截面的曲边为一条抛物线的螺线 球面的绘制 球面的绘制 球面的绘制 椭球面...
  • 1,# include"udf.h"DEFINE_PROFILE(heat_flux,t,i){real xx[ND_ND];real a, pi, r, ef,p, heat, x,y;face_t f;ef= 0.8;pi = 3.141596;r = 0.003;p=1400;heat = 3 *ef*p / (pi*r*r);begin_f_loop(f,t){x = xx[0];...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 156
精华内容 62
关键字:

matlab绘制旋转椭球体

matlab 订阅