【问题标题】:Circle radius not being sized correctly圆半径的大小不正确
【发布时间】:2021-10-16 01:35:00
【问题描述】:

我的脚本不工作。它应该创建所有接触画布底部的随机圆圈,它们的半径将每个圆圈缩小圆圈的数量。

代码如下:

for (var i = 0; i < NUM_CIRCLES; i++){
   var circle = new Circle(radius);
   circle.setPosition(CENTER_X,CENTER_Y);
   circle.setColor(color);
   add(circle);
    
   radius /= i;
   CENTER_Y = getHeight() - radius;
   color = Randomizer.nextColor();
}

【问题讨论】:

  • 显示完整的可运行代码

标签: javascript canvas geometry


【解决方案1】:

好的,这里是完整的代码:

var NUM_CIRCLES = 30;
var BIG_RADIUS = 180;
var color = Randomizer.nextColor();
var radius = BIG_RADIUS;
var CENTER_X = getWidth() / 2;
var CENTER_Y = getHeight() - radius;

function start(){
    for (var i = 0; i < NUM_CIRCLES; i++){
        var circle = new Circle(radius);
        circle.setPosition(CENTER_X,CENTER_Y);
        circle.setColor(color);
        add(circle);
    
        radius /= i;
        CENTER_Y = getHeight() - radius;
        color = Randomizer.nextColor();
    }
}

【讨论】:

  • 抱歉,这不是完整的代码...您应该将其添加到问题中,而不是作为答案...您使用的是什么库?
【解决方案2】:

据我了解,您正在尝试通过圈数来生成从大到小的圆圈,以减少它们的半径

实现 eachReduce = radius / numberofcircles 并将其用作 eachReduce 常量以将每个圆圈减少该数字以实现从大到小的尺寸直到零 看看下面的例子

let numofcir = 10,
    radius = 80,
    reduceEachBy = radius / numofcir,
    offset = radius / 2

function setup() {
  createCanvas(640, 360);
  noLoop()
}

function draw() {
  background(0)
  stroke(255)
  noFill()

  for(let i=0;i < numofcir;i++){
    // in p5 ellipse creates circle by x and y radius
    ellipse(offset + (i * offset),150,radius,radius)
    radius -= reduceEachBy
  }
}
&lt;script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.4.0/p5.min.js" integrity="sha512-N4kV7GkNv7QR7RX9YF/olywyIgIwNvfEe2nZtfyj73HdjCUkAfOBDbcuJ/cTaN04JKRnw1YG1wnUyNKMsNgg3g==" crossorigin="anonymous" referrerpolicy="no-referrer"&gt;&lt;/script&gt;

【讨论】:

  • 好的,给我一秒钟
  • var NUM_CIRCLES = 30;变量 BIG_RADIUS = 180; var color = Randomizer.nextColor();变量半径 = BIG_RADIUS; var CENTER_X = getWidth() / 2; var CENTER_Y = getHeight() - 半径; function start(){ for (var i = 0; i
  • 为什么不起作用?
  • 没有可运行代码仅在问题或答案框中支持在 cmets 中不起作用
  • 查看更新的答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多