如何给椭圆之间的空间上色?

5次浏览(过去30天)
Vivek Bharti
Vivek Bharti 2022年10月26日
评论道: 马特·J 2022年10月26日
我想给下面的区域涂上阴影:
我知道如何使用下面的代码绘制椭圆。
但是我想在两个椭圆之间画阴影我只需要x>=0和y>=0。
一般来说,如果 什么时候我怎么给这个区域加阴影 ?谢谢你!
ezplot ('x²+ y²/4 - 1');;ezplot ('x²+ y²/4 - 4');持有

答案(3)

Torsten
Torsten 2022年10月26日
编辑:Torsten 2022年10月26日
V = -6:0.001:6;%绘图范围从-5到5
[x y] = meshgrid(v);%得到x和y的二维网格
Cond1 = x.^2 + y.^2/4 >= 1;%检查这些值的条件
Cond2 = x.^2 + y.^2/4 <= 4;
Cond3 = x >= 0;
Cond4 = y >= 0;
Cond1 = double(Cond1);%转换为double用于绘图
Cond2 = double(Cond2);
Cond3 = double(Cond3);
Cond4 = double(Cond4);
cond1(cond1 == 0) = NaN;%将0设置为NaN,这样它们就不会被绘制
cond2(cond2 == 0) = NaN;
cond3(cond3 == 0) = NaN;
cond4(cond4 == 0) = NaN;
Cond = cond1.*cond2.*cond3.*cond4;乘以条件,只保留共同点
冲浪(x, y,气孔导度)
视图(0,90)%改变到顶视图

Vasudev bloom
Vasudev bloom 2022年10月26日
另一种解决方法,如果你在处理径向坐标。
X1 = linspace(0,1100);生成x坐标的第一组。更改前两个参数以获得不同的范围
Y1 = 2*√(1-x1.^2);
X2 = linspace(0,2,100);生成第二组x坐标。更改前两个参数以获得不同的范围
Y2 = 2*√(4-x2.^2);
X = [x2, fliplr(x1)];获取合成多边形的x坐标集合。第二个形状的x坐标顺序需要颠倒过来
Yeff = [y2, fliplr(y1)];得到结果多边形的y坐标集合。第二个形状的y坐标顺序需要颠倒过来
填充(x, yeff,‘g’);用绿色填充多边形(g)

马特·J
马特·J 2022年10月26日
编辑:马特·J 2022年10月26日
fn=@(r) scale(nsidedpoly(1000,“半径”,r),[1,2]);
地区=减去(fn(2)、fn (1));
情节(地区);轴平等的;轴([0 4 0 4])
1评论
马特·J
马特·J 2022年10月26日
或者,如果你真的需要将区域截短到正象限,
fn=@(r) scale(nsidedpoly(1000,“半径”,r),[1,2]);
地区=减去(fn(2)、fn (1));
区域=相交(区域,polyshape([0,0; 2、0;2 - 4;0 4]));
情节(地区);轴平等的

登录评论。

2022世界杯八强谁会赢?


释放

R2022b

世界杯预选赛小组名单社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!世界杯预选赛小组名单

开始狩猎!

Baidu
map