【发布时间】:2019-06-09 10:10:49
【问题描述】:
我想在 html 5 画布中绘制心形。我知道一个在心形上生成坐标的数学方程。我已经在 javascript 函数中实现了这些方程,并且这些函数正在返回坐标。一切正常,心画在画布上。但心形大小是固定的。我尝试了很多方法来增加它的大小,但都没有奏效。你能帮我改变方程式中的某些东西以获得所需的大小吗?
这是方程式:-
x = 16 sin(t) * sin(t) * sin(t)
y = 13 cos(t) - 5 cos(2t) - 2 cos(3t) - cos(4t)
我不知道如何在这个编辑器中显示力量,所以我将 sin(t) 乘了三倍。
这里是javascript函数:-
function getCordinatesOnHeartShape(x, y) {
var cordinates = [];
var pi = Math.PI;
for(var t = 0; t <= 360; t++) {
var tr = (t * pi)/180;
cordinates[t] = {
x : (x - (16 * Math.sin(tr) * Math.sin(tr) * Math.sin(tr))),
y : (y -((13 * Math.cos(tr)) - (5 * Math.cos(2 * tr)) - (2 * Math.cos(3 * tr)) - Math.cos(4 * tr)))
};
}
return cordinates;
}
这是我在画布上 (200, 200) 位置绘制心形的方法:-
ctx.beginPath();
var hc = getCordinatesOnHeartShape(200, 200);
for(var i = 0; i < hc.length; i++) {
ctx.lineTo(hc[i].x, hc[i].y);
}
ctx.fill();
这会在位置 (200, 200) 上绘制一个固定大小的心,我想改变它的大小。谢谢。
【问题讨论】:
标签: javascript html math canvas html5-canvas