我想画一条垂直线,它可以根据页面内容进行调整大小,但是看起来像手绘的,而不是直线。
我目前考虑使用SVG或Canvas来实现这一点。该线将沿着网页的一侧运行,因此需要在容器的顶部和底部之间进行可扩展性。我该如何实现这个目标?
我想画一条垂直线,它可以根据页面内容进行调整大小,但是看起来像手绘的,而不是直线。
我目前考虑使用SVG或Canvas来实现这一点。该线将沿着网页的一侧运行,因此需要在容器的顶部和底部之间进行可扩展性。我该如何实现这个目标?
所以你想用抖动来画一条线?
尝试绘制一系列连续的贝塞尔曲线,其中所有Y轴点部分等间距,并通过某些量随机化x值。
这里有一个示例供您参考:
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();
<canvas id="canvas1" width="500" height="500"></canvas>