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');
% 设置标题

~(~▽~~)成品图如下~

Matlab中爱心的四种画法(附代码)_第1张图片

 如果要等比例改变爱心的大小,可以指定一个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');

 Matlab中爱心的四种画法(附代码)_第2张图片

 然后,下面是第三种方法,考虑了极坐标系,但最终转化为了平面直角坐标系。

% 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');

Matlab中爱心的四种画法(附代码)_第3张图片 

 除此之外,还有用线画的第四种方法——

% 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');

 Matlab中爱心的四种画法(附代码)_第4张图片

参考资料:

[1] matlab中fill函数的使用方法. 平平无奇的小女子~. CSDN-onlyfanlala/article/details/121707456

[2] 一些心型曲线及其方程.  stereohomology. CSDN-stereohomology/article/details/51581391

[3]  笛卡尔心形函数表达式_数学的有趣图形-心形线. 江东的铁壁. CSDN-weixin_35117981/article/details/112368380

使用软件:Matlab2022a

你可能感兴趣的:(matlab,开发语言)