简体   繁体   English

画布的绘制线条

[英]Drawing lines for Canvas

I am kind of new to all this and cannot seem to figure out how to make a for loop (if possible) that will draw the type of line I am looking for. 我对这一切都不熟悉,似乎无法弄清楚如何制作一个for循环(如果可能的话),它将绘制我正在寻找的线的类型。 I am trying to create an image of a pumpkin using canvas and want to outline the teeth. 我试图用帆布创建一个南瓜的图像,并想要勾勒出牙齿。 I was hoping there was an easier way than typing out all of the code to draw the individual lines it takes to outline the teeth. 我希望有一种比输入所有代码更简单的方法来绘制轮廓牙齿所需的各条线。 Here is the code for each individual line, but I cannot seem to figure out the for loop that would do the same thing. 这是每个单独行的代码,但我似乎无法弄清楚for循环会做同样的事情。 Any help would be greatly appreciated. 任何帮助将不胜感激。 Thanks. 谢谢。

context.beginPath();
context.strokeStyle = '#cc5200';
context.moveTo(220, 590);
context.lineTo(220, 550);
context.moveTo(220, 550);
context.lineTo(260, 550);
context.moveTo(260, 550);
context.lineTo(260, 590);
context.moveTo(260, 590);
context.lineTo(300, 590);
context.moveTo(300, 590);
context.lineTo(300, 550);
context.moveTo(300, 550);
context.lineTo(340, 550);
context.moveTo(340, 550);
context.lineTo(340, 590);
context.moveTo(340, 590);
context.lineTo(380, 590);
context.moveTo(380, 590);
context.lineTo(380, 550);
context.moveTo(380, 550);
context.lineTo(420, 550);
context.moveTo(420, 550);
context.lineTo(420, 590);
context.moveTo(420, 590);
context.lineTo(460, 590);
context.moveTo(460, 590);
context.lineTo(460, 550);
context.moveTo(460, 550);
context.lineTo(500, 550);
context.moveTo(500, 550);
context.lineTo(500, 590);
context.moveTo(500, 590);
context.lineTo(540, 590);
context.moveTo(540, 590);
context.lineTo(540, 550);
context.moveTo(540, 550);
context.lineTo(580, 550);
context.lineTo(580, 590);

context.stroke();

This should be a start: 这应该是一个开始:

 var canvas = document.getElementById('canvas'); var context = canvas.getContext('2d'); context.beginPath(); context.strokeStyle = '#cc5200'; // Example line that is repeated in the loop context.moveTo(10, 90); // Bottom left context.lineTo(10, 50); // Up context.lineTo(10 + 40, 50); // Right context.lineTo(10 + 40, 90); // Down context.lineTo(10 + 80, 90); // Right context.moveTo(220, 90); for (var i = 220; i <= 540; i += 80) { context.lineTo(i, 90); context.lineTo(i, 50); context.lineTo(i + 40, 50); context.lineTo(i + 40, 90); if(i != 540) // Don't draw the line for the last one context.lineTo(i + 80, 90); } context.stroke(); 
 <canvas id="canvas" width="600" height="600"></canvas> 

x values of 580 aside, you seem to be drawing 2 lines for each x coordinate, 40 pixels apart. 除了580 x值之外,您似乎为每个x坐标绘制了2条线,相隔40个像素。 Those steps can be put into a loop. 这些步骤可以放入循环中。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM