如果无法将360整除,则自动递增

问题描述 投票:0回答:1

我正在编写一个绘图脚本,该脚本使用p5 javascript创建圆形图案。我希望通过按键更改多边形中的边数。我做了所有的工作,但是我意识到,如果360可以被侧面数整除,则图案效果会更好。我想写一个函数,当用户增加或减少侧面时,它将跳过不可分割的值。这些键仍然有效,但是它们并不总是像if语句总是出现false一样递增一。我尝试将返回值放在else中,但是那样一来就不会返回任何值。我在这里想念什么?这是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);
}
javascript p5.js modulo
1个回答
0
投票

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

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;
}
© www.soinside.com 2019 - 2024. All rights reserved.