我需要画这个:
![f=1 ( this is ellipse equation][1]
(2*X/(1+sgnX)*Rfoce-(1-sgnX)*Raft)^2+(2*Y/(1+sgnY)*Rstarb-(1-sgnY)*Rport)^2=1
sgnX=1 when X>=0
sgnX=-1 when X<0
-1*Raft=<X=<Rforce
-1*Rport=<Y<=Rstarp
我该如何画画?然而,我尝试绘制另一种形状而不是椭圆形。你能帮我吗?
Rforce
,Raft
,Rstarb
,Rport
是输入参数。
答案 0 :(得分:1)
你可以用这个:
ezplot('你的椭圆方程'); 网格;
答案 1 :(得分:0)
我不认识椭圆方程的形式,但如果你想使用椭圆,你可以做这样的事情。函数椭圆可以采用
2个输入 - a,b 3输入 - a,b,theta 4个输入 - a,b,x0,y0 5个输入 - a,b,x0,y0,theta
其中theta是度。
唯一的非常见函数是flip
翻转向量和nargin
,它允许可变数量的输入。
x0 = -5;
y0 = 3;
a = 2;
b = 1;
theta = 7.5;
[x, y] = ellipse(a, b, x0, y0, theta);
plot(x, y)
axis equal
function [x,y] = ellipse(a, b, x0, y0, theta)
if nargin < 2
disp('Please enter at least the semi-major and -minor axis')
elseif nargin == 2
x0 = 0;
y0 = 0;
theta = 0;
elseif nargin == 3
theta = x0;
x0 = 0;
y0 = 0;
elseif nargin == 4
theta = 0;
elseif nargin ~= 5
disp('Too many input arguements')
end
X = linspace(-a, a, 100);
Y = [b*sqrt(1 - (X/a).^2), -b*sqrt(1 - (flip(X)/a).^2)];
X = [X, flip(X)];
x = X * cosd(theta) - Y * sind(theta) - y0;
y = X * sind(theta) + Y * cosd(theta) - x0;
end