微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 画布的绘制线条

我对这一切都不熟悉,似乎无法弄清楚如何制作一个for循环(如果可能的话),它将绘制我正在寻找的线的类型.我试图用帆布创建一个南瓜的图像,并想要勾勒出牙齿.我希望有一种比输入所有代码更简单的方法来绘制轮廓牙齿所需的各条线.这是每个单独行的代码,但我似乎无法弄清楚for循环会做同样的事情.任何帮助将不胜感激.谢谢.

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();

解决方法:

这应该是一个开始:

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>

除了580的x值之外,您似乎为每个x坐标绘制了2条线,相隔40个像素.这些步骤可以放入循环中.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐