matlab画倾斜的椭球_在MATLAB中绘制椭圆和椭球

本文介绍了如何在MATLAB中绘制倾斜的椭球和椭圆。通过使用参数方程转换JavaScript代码为MATLAB函数,可以实现椭圆的绘制。示例展示了如何绘制以(0,0)为中心,长轴20,短轴10,旋转50度的椭圆。" 121347800,9132149,LeetCode:版本号比较与解题策略,"['算法', '字符串处理', 'LeetCode']
摘要由CSDN通过智能技术生成

How do I draw an ellipse and an ellipsoid using MATLAB?

(x^2/a^2)+(y^2/b^2)=1

n=40;

a=0; b=2*pi;

c=0; d=2*pi;

for i=1:n

u=a+(b-a)*(i-1)/(n-1);

for j=1:m

v=a+(d-c)*(j-1)/(m-1);

x(i,j)=sin(u)*cos(v);

y(i,j)=sin(u)*sin(v);

z(i,j)=cos(u);

end

end

mesh(x,y,z);

But I want the shape?

解决方案

Ellipse article on Wikipedia had a simple JavaScript code to draw ellipses.

It uses the parametric form:

x(theta) = a0 + ax*sin(theta) + bx*cos(theta)

y(theta) = b0 + ay*sin(theta) + by*cos(theta)

where

(a0,b0) is the center of the ellipse

(ax,ay) vector representing the major axis

(bx,by) vector representing the minor axis

I translated the code into a MATLAB function:

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 = [X Y]; end

end

and an example to test it:

%# 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值