javascript - 如何使用 canvas HTML5 绘制星星?

标签 javascript html html5-canvas

我正在尝试使用 Canvas 绘制星星,但代码未运行。我想了解:测量Y和X坐标的步骤是什么?如何找到他们?绘制任何形状?

<html>
 <head>
   <meta charset = "utf-8">
   <title>Drawing Lines</title>
 </head>
 <body>
   <canvas id = "drawLines" width = "400" height = "200" 
     style = "border: 1px solid Black;">
   </canvas>
   <script>
     var canvas = document.getElementById("drawLines");
     var context = canvas.getContext("2d")

     canvas.beginPath(); 
     canvas.moveTo(50,50);
     canvas.lineTo(120,150);
     canvas.lineTo(0,180); 
     canvas.lineTo(120,210);
     canvas.lineTo(50,310);  
     canvas.lineTo(160,250);
     canvas.lineTo(190,370);
     canvas.lineTo(220,250);
     canvas.lineTo(330,310);
     canvas.lineTo(260,210);
     canvas.lineTo(380,180);
     canvas.closePath();
     canvas.stroke();
   </script>
 </body>
</html>

最佳答案

星星基本上是一个规则的多边形,在内半径和外半径上有交替的点。

下面是一个绘制星形的灵活函数示例。

您可以设置尖峰的位置、#spikes 和内外半径:

enter image description here

示例代码和演示:http://jsfiddle.net/m1erickson/8j6kdf4o/

<!doctype html>
<html>
<head>
<link rel="stylesheet" type="text/css" media="all" href="css/reset.css" /> <!-- reset css -->
<script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script>
<style>
    body{ background-color: ivory; }
    canvas{border:1px solid red;}
</style>
<script>
$(function(){

    var canvas=document.getElementById("canvas");
    var ctx=canvas.getContext("2d");

    function drawStar(cx,cy,spikes,outerRadius,innerRadius){
      var rot=Math.PI/2*3;
      var x=cx;
      var y=cy;
      var step=Math.PI/spikes;

      ctx.beginPath();
      ctx.moveTo(cx,cy-outerRadius)
      for(i=0;i<spikes;i++){
        x=cx+Math.cos(rot)*outerRadius;
        y=cy+Math.sin(rot)*outerRadius;
        ctx.lineTo(x,y)
        rot+=step

        x=cx+Math.cos(rot)*innerRadius;
        y=cy+Math.sin(rot)*innerRadius;
        ctx.lineTo(x,y)
        rot+=step
      }
      ctx.lineTo(cx,cy-outerRadius);
      ctx.closePath();
      ctx.lineWidth=5;
      ctx.strokeStyle='blue';
      ctx.stroke();
      ctx.fillStyle='skyblue';
      ctx.fill();
    }

    drawStar(100,100,5,30,15);

}); // end $(function(){});
</script>
</head>
<body>
    <canvas id="canvas" width=300 height=300></canvas>
</body>
</html>

关于javascript - 如何使用 canvas HTML5 绘制星星?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25837158/

相关文章:

javascript - 如何在 java 脚本中停止鼠标悬停幻灯片放映(幻灯片放映应在鼠标移开后照常开始)

html - 适用于不同屏幕的响应式 Canvas - 最好的方法是什么?

javascript - 如何使 Chart.js 条形图保持在原来的位置

javascript - html5 Canvas 移动元素

javascript - 如何迭代 DataTable 中列的每个单元格以检查其文本?

javascript - jquery 动画按钮问题有帮助吗?

javascript - 处理当前表单上的所有事件后运行的排队函数

javascript - 使用正则表达式在 JavaScript 中屏蔽日期的最后两位数字

php - 如何在 PHP 循环中更改 CSS 的类名?

css 表格列问题?