Matlab中爱心的四种画法(附代码)

 什么Σ(っ°Д°;)っ?居然可以用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

使用软件:Matlab2022a

  • 24
    点赞
  • 114
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值