【发布时间】:2017-02-15 22:43:49
【问题描述】:
我有一个 400x300 的 HTML 画布,我正在尝试使用一个圆圈和 7 个三角形来绘制一个太阳。为了绘制三角形,我按照this SO Answer 的说明进行平移、旋转和平移。但是,有些三角形重叠在一起,就好像它们的角度相同。
http://codepen.io/ralrom/pen/bgZYRO
我不知道出了什么问题,我检查了计算出的弧度,它们都在 0 到 2*PI 之间。
var drawSun = function () {
// Circle
context.beginPath();
context.arc(75, 75, 30, 0, Math.PI * 2, true);
context.closePath();
context.fill();
context.save();
// Triangles
for (var i = 0; i < 7; i++) {
// Rotate the canvas around a point
angle = i * 360 / 7;
console.log(angle, angle * Math.PI / 180);
context.translate(75, 75);
context.rotate(angle * Math.PI / 180);
context.translate(-75, -75);
// Draw the triangle
context.beginPath();
context.fillStyle = 'rgba(0,0,0,0.5)';
context.moveTo(60, 35);
context.lineTo(75, 15);
context.lineTo(90, 35);
context.closePath();
context.fill();
context.restore();
}
}
【问题讨论】:
标签: html5-canvas geometry