什么Σ(っ°Д°;)っ?居然可以用matlab画出漂亮的爱心图案?
方法一~
% Method 1
x = -1:1/400:1;
% 给定一个x的范围,指定步长为1/400
y1 = 0.6 * abs(x) .^ 0.5 + ((1 - x .^ 2) / 2) .^ 0.5;
% 爱心的上半部分
y2 = 0.6 * abs(x) .^ 0.5 - ((1 - x .^ 2) / 2) .^ 0.5;
% 爱心的下半部分
fill([x, flip(x)], [y1, y2], 'r')
% 利用fill()函数画出爱心。第一、二个参数均为向量,对应起来恰好是爱心边上的点。
% "r"指定颜色为 red
axis square
% 将当前坐标系图形设置为方形
title('I love U');
% 设置标题
~(~▽~~)成品图如下~
如果要等比例改变爱心的大小,可以指定一个scale:
% 如要改变爱心的大小,可以指定一个scale
scale = 2;
x = (-1:1/400:1);
y1 = (0.6 * abs(x) .^ 0.5 + ((1 - x .^ 2) / 2) .^ 0.5) * scale;
y2 = (0.6 * abs(x) .^ 0.5 - ((1 - x .^ 2) / 2) .^ 0.5) * scale;
fill([x, flip(x)] * scale, [y1, y2], 'r')
axis square
title('I love U');
这样一来,爱心就等比例地变为原来的2倍大啦~(面积为4倍)
下面是第二种画法,与第一种大同小异,但画出来的爱心略有不同。
% Method 2
t = -180:1/40:180;
x = 16 * sind(t) .^ 3;
y = 13 * cosd(t) - 5 * cosd(2 * t) - 2 * cosd(3 * t) - cosd(4 * t);
fill(x, y, 'r');
title('I love U');
然后,下面是第三种方法,考虑了极坐标系,但最终转化为了平面直角坐标系。
% Method 3
t = -180:1/40:180;
r = sind(t) .* (abs(cosd(t)) .^ 0.7) ./ (sind(t) + 7 / 5) - 2 * sind(t) + 2;
x = r .* cosd(t);
y = r .* sind(t);
fill(x, y, 'r');
title('I love U');
除此之外,还有用线画的第四种方法——
% Method 4
x = -2:1/400:2;
y = abs(x .^ (2/3)) + (0.99 * (3.3 - x .^ 2) .^ (1/2)) .* sin(9.9 * pi * x);
plot(x, y, 'r');
title('I love U');
参考资料:
[1] matlab中fill函数的使用方法. 平平无奇的小女子~. CSDN-onlyfanlala/article/details/121707456
[2] 一些心型曲线及其方程. stereohomology. CSDN-stereohomology/article/details/51581391
[3] 笛卡尔心形函数表达式_数学的有趣图形-心形线. 江东的铁壁. CSDN-weixin_35117981/article/details/112368380文章来源:https://www.toymoban.com/news/detail-425126.html
使用软件:Matlab2022a文章来源地址https://www.toymoban.com/news/detail-425126.html
到了这里,关于Matlab中爱心的四种画法(附代码)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!