如果 360 不能被值整除则自动递增

Auto increment if 360 is not divisible by value

我正在编写一个使用 p5 创建圆形图案的绘图脚本 javascript。

我想通过按键改变多边形的边数。我已经完成了所有这些工作,但我意识到如果 360 可以被边数整除,那么图案会更好。我想写一个函数,当用户增加或减少边时,它会跳过不可整除的值。

键仍然有效,但它们并不总是像 if 语句总是出现 false 那样递增 1。我尝试将 return 放在 else 中,但那样 return 永远不会是一个值。 我在这里错过了什么? 这是 javascript 函数:

function modCheck(num, dir){
  num = num + dir; //num is the number of sides | dir indicates if the sides should increase or decrease
  if(360 % num !== 0){
    modCheck(num, dir);
  }
    return num;
}

按键功能如下:

function keyPressed(){
  if((key === 'q' || key ===  'Q') && sides > 1 ) sides = modCheck(sides, -1);
  if((key === 'a' || key ===  'A') && sides < 360) sides = modCheck(sides, 1);
}

您函数中的问题是您没有更新 if 语句中的 num 变量。这里有一个工作示例:

function modCheck(num, dir){
    num = num + dir; //num is the number of sides | dir indicates if the sides should increase or decrease
    if(360 % num !== 0){
      num = modCheck(num, dir);
    }

    return num;
}