我一直在尝试按照此示例here创建一个逐点平滑的随机生成的行。
以下是我的代码片段:
var ptheta = 50;
var theta = 50;
var px = 0;
var py = 0;
var x = 50;
var y = 50;
var a = 0.3;
var rand = 0;
var angleVar = 0;
function animate(){
rand = Math.random() * (10.0 - 1.0) * 1.0;
angleVar = ((2*rand-1) * a * Math.PI);
theta = ptheta + angleVar;
px = x;
py = y;
r = rand//Math.random() * (10.0 - 1.0) * 1.0;
x = (px + r * Math.cos(ptheta));
y = (py + r * Math.sin(ptheta));
ptheta = theta;
//draw
ctx.lineWidth = 3 //make this random
ctx.beginPath()
ctx.moveTo(this.px, this.py)
ctx.strokeStyle = this.color
ctx.lineTo(this.x, this.y)
ctx.lineCap = "round"
ctx.stroke()
}
看起来代码几乎完成了必要的操作。它确实创建了一个随机生成的行,但我遇到了两个问题:
我正在尝试使用html画布并使用下面的代码和上面提供的示例在其上绘制笔画来实现此目的。
非常感谢任何帮助!
答案 0 :(得分:1)
我的笔created a fork并进行了一些修改:
rand = Math.random();
需要过于急转弯,这将为您提供介于0-1而不是0-9之间的值r = Math.random() * 20;
如果您想通过以下方式将起点放在屏幕中间:
var x = window.innerWidth / 2; var y = window.innerHeight / 2;