|
|

楼主 |
发表于 2024-5-4 08:07
|
显示全部楼层
我把画法再改一下,一次性画完吧:
- <canvas id="canv" width="400" height="400"></canvas>
-
- <script>
-
- var ctx = canv.getContext('2d');
- var size = canv.width / 2, r1 = size - 10, r2 = r1 * 2/5, points = [];
-
- for(var i = 0; i < 5; i ++) {
- var x1 = Math.cos((18 + i * 72) / 180 * Math.PI) * r1 + size,
- y1 = -Math.sin((18 + i * 72) / 180 * Math.PI) * r1 + size,
- x2 = Math.cos((54 + i * 72) / 180 * Math.PI) * r2 + size,
- y2 = -Math.sin((54 + i * 72) / 180 * Math.PI) * r2 + size;
- points.push({x1: x1, y1: y1, x2: x2, y2: y2});
- }
-
- var draw5star = () => {
- for(var j = 0; j < 5; j++) {
- ctx.beginPath();
- ctx.fillStyle = 'red';
- ctx.moveTo(points[j].x1, points[j].y1);
- ctx.lineTo(size, size);
- ctx.lineTo(points[j].x2, points[j].y2);
- ctx.lineTo(points[j].x1, points[j].y1);
- ctx.fill();
- ctx.beginPath();
- ctx.fillStyle = 'darkred';
- var k = j > 0 ? j - 1 : 4;
- ctx.moveTo(points[j].x1, points[j].y1);
- ctx.lineTo(size, size);
- ctx.lineTo(points[k].x2, points[k].y2);
- ctx.moveTo(points[j].x1, points[j].y1);
- ctx.fill();
- }
- };
- draw5star();
-
- </script>
复制代码
|
评分
-
| 参与人数 1 | 威望 +50 |
金钱 +100 |
经验 +50 |
收起
理由
|
红影
| + 50 |
+ 100 |
+ 50 |
赞一个! |
查看全部评分
|