Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript HTML画布赢得';画线_Javascript_Html_Canvas - Fatal编程技术网

Javascript HTML画布赢得';画线

Javascript HTML画布赢得';画线,javascript,html,canvas,Javascript,Html,Canvas,我有下面的代码来画一条线,但它不会画。我只看到画布的边框。我在控制台中没有看到任何错误 index.html: <div id="chart_area"> <canvas id="chart1" width="800" height="600"></canvas> </div> ... <script> processChart() </script> chart.js: function proces

我有下面的代码来画一条线,但它不会画。我只看到画布的边框。我在控制台中没有看到任何错误

index.html:

<div id="chart_area">
     <canvas id="chart1" width="800" height="600"></canvas>
</div>
...
<script>
     processChart()
</script>
chart.js:

function processChart() {
        var b_canvas = document.getElementById("chart1");
        var b_context = b_canvas.getContext("2d");
            b_context.moveTo([0,0]);
            b_context.lineTo([300,300]);
            b_context.stroke()  
}

这些函数接受两个参数,而不是数组。还要确保在绘制路径之前调用beginPath,如果不这样做,您以后会感到困惑:)您的代码应该是

b_context.beginPath();
b_context.moveTo(0, 0);
b_context.lineTo(300, 300);
b_context.stroke()  
一些画布教程:

  • 总是好的
  • 从html5tutorial.info看起来不错,重点是路径绘制
    • 您应该删除您的“[” 试试这个:

      b_canvas = document.getElementById("chart1");
              var b_context = b_canvas.getContext("2d");
                  b_context.moveTo(11,0);
                  b_context.lineTo(200,300);
                  b_context.stroke();
      

      你忘了开始路径。当你尝试绘制其他路径时,始终这样做会导致问题。@JacobParker你是对的。但我只是将其更正为有效。就像这样:是的,这适用于一条线,但很少我们只想绘制一条线:)是的,我不会和你争论。
      b_canvas = document.getElementById("chart1");
              var b_context = b_canvas.getContext("2d");
                  b_context.moveTo(11,0);
                  b_context.lineTo(200,300);
                  b_context.stroke();