所有分类
  • 所有分类
  • 后端开发
深入了解线型 Line styles:设置线样式的属性与样例

深入了解线型 Line styles:设置线样式的属性与样例

可以通过一系列属性来设置线的样式。像素只是部分着色,结果就是以实际笔触颜色一半色调的颜色来填充整个区域(浅蓝和深蓝的部分)。就好像一般的绘图软件一样,我们可以用线性或者径向的渐变来填充或描边。下面是最简单的线性黑白渐变的例子。这最后的例子,

线条可不只是简单的连接工具,还是艺术和设计里的大腕儿。赶紧来学学怎么操控线条,让你的作品舞动得更漂亮!

lineWidth = value
lineCap = type
lineJoin = type
miterLimit = value

线条的基础:理解像素与坐标的关系

深入了解线型 Line styles:设置线样式的属性与样例

注意!画布里的坐标和电脑屏幕上的像素可不是固定配对的,所以画横直直线挺费劲儿的。比如,左上角的那条线或者宽为奇数的线,看上去总有点倾斜,这就是路径定位闹的事儿。你可以想象画布就是网状的,每一小格都是像素点。为了让图形边缘看得清楚,必须让它刚好落在像素线上面。可惜,假如你画的线条是1.0,起点是(3,1),终点是(3,5),结果看上去就是像素化的马赛克,糊成一片。

function draw() {  
     var ctx = document.getElementById('canvas').getContext('2d');  
     for (var i = 0; i < 10; i++){  
       ctx.lineWidth = 1+i;  
       ctx.beginPath();  
       ctx.moveTo(5+i*14,5);  
       ctx.lineTo(5+i*14,140);  
       ctx.stroke();  
     }  
  }

线条的宽度:奇数与偶数的秘密

深入了解线型 Line styles:设置线样式的属性与样例

说到线条宽窄,单数和双数差别可大了!双数线条就是俩整数像素的距离,所以咱要把它们摆在像素的中心,才能保持不变形,不怕缩放。可单数线条就麻烦多了,容易翘边或者半像素露出来。因此画图时要特别注意线条的位置,务必让它正好贴着网格线,两边都不能有半个像素伸出。

线条的连接:miter与miterLimit的故事

线条可不只是孤单地挂在那儿,还能相互碰到对不?当两条线碰上时,如果直角设定正确的话,它们就会继续往外延伸去碰撞对方。但别慌张,这种伸展是有限制滴,这取决于”连接限制”或是miterLimit的设定。记住这条红线是不能乱踩的,要是交叉点离得太远,那连接效果可能就会变成斜角,跟你和朋友见面握手变点头差不多。

深入了解线型 Line styles:设置线样式的属性与样例

线条的渐变:颜色的魔术

function draw() {  
     var ctx = document.getElementById('canvas').getContext('2d');  
     var lineCap = ['butt','round','square'];  
      
     // Draw guides  
     ctx.strokeStyle = '#09f';  
     ctx.beginPath();  
     ctx.moveTo(10,10);  
     ctx.lineTo(140,10);  
     ctx.moveTo(10,140);  
     ctx.lineTo(140,140);  
     ctx.stroke();  
     
     // Draw lines  
     ctx.strokeStyle = 'black';  
     for (var i=0;i<lineCap.length;i++){  
       ctx.lineWidth = 15;  
       ctx.lineCap = lineCap[i];  
       ctx.beginPath();  
       ctx.moveTo(25+i*50,10);  
       ctx.lineTo(25+i*50,140);  
       ctx.stroke();  
     }  
   }

色彩线条可不止黑白两种,还有各种炫酷色彩!用渐变效果,线条可以瞬间变成另外一种颜色,就像变魔术一样。你想从哪个颜色开始变,或者变到哪种颜色,又或者同时出现反差极大的两个颜色,都没问题,绝对让人眼前一亮!比如,突然从白色变成绿色,真是惊喜连连!

线条的图案:重复的艺术

深入了解线型 Line styles:设置线样式的属性与样例

【注】除了渐变,还有个提高直线美的新招儿——用图案!把pattern直接扔到fillStyle或strokeStyle里,立马让线条好看起来。但得注意了,跟drawImage不一样,先把图案填满再用,不然图案形状会崩坏。跟画画一样,墙绘也得等底色干了才能上墙呢~

function draw() {  
      var ctx = document.getElementById('canvas').getContext('2d');  
      var lineJoin = ['round','bevel','miter'];  
      ctx.lineWidth = 10;  
      for (var i=0;i<lineJoin.length;i++){  
        ctx.lineJoin = lineJoin[i];  
        ctx.beginPath();  
        ctx.moveTo(-5,5+i*40);  
        ctx.lineTo(35,45+i*40);  
        ctx.lineTo(75,5+i*40);  
        ctx.lineTo(115,45+i*40);  
        ctx.lineTo(155,5+i*40);  
        ctx.stroke();  
     }  
   }

线条的缩放:变形的挑战

深入了解线型 Line styles:设置线样式的属性与样例

数字线条不仅要好看,还得栩栩如生才行。得缩放、变形成功,才能看着舒服。关键就在于看清像素网格与路径位置间的关系,别出问题。学这个,就像学会了变形金刚的魔法,不管怎么变也不变丑。

深入了解线型 Line styles:设置线样式的属性与样例

线条的最终呈现:从细节到整体

搞掂所有设置以后,美翻天了?别马虎喔,图案大小、连接方式、颜色过渡什么的,全都得小心翼翼。想象一下,这就像跳舞,每个小动作都重要,才能让人看得如痴如醉!

createLinearGradient(x1,y1,x2,y2)
createRadialGradient(x1,y1,r1,x2,y2,r2)

原来用数码技术玩艺术可以把线弄得像跳舞一样在画布上动起来!

var lineargradient = ctx.createLinearGradient(0,0,150,150);  
var radialgradient = ctx.createRadialGradient(75,75,0,75,75,100);

哈喽!又来找你了!想用线条画啥最美?快来说说看~记得点赞转发这篇文章让更多人了解这么炫酷的小技巧!

addColorStop(position, color)

原文链接:https://www.icz.com/technicalinformation/web/2024/06/18592.html,转载请注明出处~~~
0

评论0

请先
注意:请收藏好网址www.icz.com,防止失联!站内免费资源持续上传中…!赞助我们
显示验证码
没有账号?注册  忘记密码?