for循环中生成的随机数不变化,无法动态调整线条绘制描边颜色
问题根因
- 第一次调用
stroke()设置颜色后立刻执行了liftUp()抬笔操作,抬笔状态下的移动不会产生任何绘制痕迹,该次颜色设置属于无效操作。 random1、random2、random3三个变量未添加声明关键字,若运行环境开启严格模式会触发变量未定义报错,导致后续代码中断执行,无法更新颜色。- 部分海龟绘图类库要求描边颜色设置必须在落笔(
liftDown())之后执行才会对后续绘制生效,你当前的落笔操作在颜色设置之后,可能不符合库的调用规则。
修正后的参考代码
如果你的需求是每次循环生成的图形统一使用同一个随机描边色,可参考如下修改:
for (var i = 0; i < 11; i++) { // 抬笔移动到目标绘制位置 liftUp(); backward(100); turnLeft(45); forward(200); // 生成随机色后再落笔绘制 var random1 = randomNumber(0, 255); var random2 = randomNumber(0, 255); var random3 = randomNumber(0, 255); liftDown(); stroke(rgb(random1, random2, random3)); // 执行绘制动作 backward(150); turnRight(45); forward(150); turnRight(135); forward(150); }
如果需要同一次循环内的多段线条使用不同随机色,在每段绘制动作前单独新增随机数生成+stroke()设置逻辑即可。
内容的提问来源于stack exchange,提问作者Zues
相关产品推荐
相关产品推荐

