首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用svg/canvas绘制不规则/手绘的线条?

如何使用svg/canvas绘制不规则/手绘的线条?
EN

Stack Overflow用户
提问于 2011-06-16 21:11:37
回答 1查看 4K关注 0票数 8

我想画一条可调整大小的垂直线(基于页面内容),但这似乎是手绘的,而不是直线。

我目前正在考虑使用SVG或Canvas来实现这一点。这条线将运行在我的网页的一侧,因此需要在容器的顶部和底部之间可伸缩。我如何才能做到这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-16 21:52:20

所以你想和抖动划清界限?

尝试绘制一组连续的Bezier曲线,其中所有Y轴点部分的间距相等,并按一定数量随机化x值。

下面是一个示例,帮助您入门:

代码语言:javascript
复制
var can = document.getElementById('canvas1');
var ctx = can.getContext('2d');

function addJitteryBezier(fromx, fromy, tox, toy) {
 var diffx = tox - fromx;
 var diffy = toy - fromy;
 
 var neg = Math.random()*diffy/5; // so the x value can go positive or negative from the typical
    
    
 ctx.bezierCurveTo(
 -neg + fromx + 2*(Math.random()*diffy/8), fromy + .3*diffy,
 -neg + fromx + 2*(Math.random()*diffy/8), fromy + .6*diffy,
 tox, toy
 );   
}

ctx.beginPath();
ctx.moveTo(50,0);

var i = 0;
while (i < 500) {
    addJitteryBezier(50, i, 50, i+50);
    i+=  50;
}

ctx.stroke();
代码语言:javascript
复制
<canvas id="canvas1" width="500" height="500"></canvas>

http://jsfiddle.net/GfGVE/9/

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6372444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档