読者です 読者をやめる 読者になる 読者になる

OctaveでHeart曲線

現実逃避気分転換に、参考サイト の方法2の式をOctaveで書いてみました。
http://www16.ocn.ne.jp/~akiko-y/heart/index_heart.files/eq2.gif

#!/usr/local/bin/octave

1;

b = 0.8;

x1 = 0:0.005:1; % x >= 0
y1 = sqrt(1 - x1 .* x1) + b * sqrt(x1);
y2 = -sqrt(1 - x1 .* x1) + b * sqrt(x1);

x2 = -1:0.005:0; % x <= 0
x2 = fliplr(x2);

figure(1);
plot(x1, y1, ["m;b = 0.8;"]); hold on
plot(x1, y2, ["m"]);
plot(x2, y1, ["m"]);
plot(x2, y2, ["m"]);
grid on;

xlim([-1.5, 1.5]);
ylim([-1.5, 2]);

print("heart.png", "-dpng");

f:id:kiyotune:20120224151730p:image:w650
x < 0の式を書いたらなぜか上下反転してしまったのでx >= 0の結果をY軸で反転させて回避(そのうち調べる)。
内側を塗りつぶしたいんだけどどうすればいいんだろう。