使用 HTML 5 画布绘制五边形

Posted

技术标签:

【中文标题】使用 HTML 5 画布绘制五边形【英文标题】:Draw a Pentagon with HTML 5 canvas 【发布时间】:2018-01-07 09:10:00 【问题描述】:

我需要用 javascript 中的 html 5 画布绘制五角大楼。这里没有太多可写的了。我已经尝试查找它,但是很多示例都无法正常工作。

【问题讨论】:

How to draw polygons on an HTML5 canvas? 的可能重复项。五边形就像任何其他多边形一样。您可以使用 javascript 来计算坐标的数学。 我知道五边形就像任何其他多边形一样,我在数学,特别是几何方面有问题。 那么您应该尝试在Math StackExchange 中提问,因为您已澄清您没有编程问题。 另外,我为你做了一些谷歌搜索。我发现这个blog article 的答案被撕掉了。玩得开心。 五边形是“正多边形”的一种。文档中的这篇文章展示了如何绘制 regular polygons。 【参考方案1】:

五边形从 3 点钟位置开始,使用旋转来更改以弧度为单位的起始位置。即从顶部开始旋转是-90deg = -Math.PI / 2

function pentagon(x, y, radius, rotation)
    for(var i = 0; i < 5; i ++)
        const ang = (i / 5) * Math.PI * 2 + rotation;
        ctx.lineTo(
            Math.cos(ang) * radius + x,
            Math.sin(ang) * radius + y
        );
     
     ctx.closePath();


ctx.beginPath();
pentagon(100,100,50,-Math.PI / 2);
ctx.fill();
ctx.stroke();

【讨论】:

以上是关于使用 HTML 5 画布绘制五边形的主要内容,如果未能解决你的问题,请参考以下文章

从坐标图中绘制多边形画布

Canvas:绘制线和填充多边形

如何在 android 画布上绘制圆角多边形?

千呼万唤 HTML 5 - 画布(canvas)之绘制图形

如何使所有绘制的(矩形、圆形、线条、多边形)可拖动?纯JS

如何在 JavaScript 中围绕折线绘制多边形?