遍历数组和迭代器变得大于长度时(在图形渲染循环中),如何返回开始

我正在尝试制作一个动画记录器,将x,y位置记录到一个数组中,并允许调出动画。我特别考虑将p5.js作为图形库,但是任何一个都可以使用。因为这只是数组工作。

在p5.js中

返回Sin()或Cos()的值,您可以给它们传递一个角度,因为2PI == 4PI(就旋转面向的方向而言)等,该角度可以不断增加。我正在寻找复制这种功能,但要返回存储在数组中的数据。

例如,您有一个类似于以下内容的数组

let demo = ['297','298','299','300']

一次遍历数组很容易,因为它有4个项目,但是我想编写一个函数,如果我们传入4,它将返回索引0,'297',或者我们传入11 ,它将返回“ 300”,或者如果我们输入22,它将返回“ 299”

这样,函数可以不断地以不断增加的值馈入,该值在每一帧上移,我们可以循环返回数组的值。


let survey = 0;

let demo = ['297','300']

//a rendering loop
function draw(){

survey ++

let xPos = getPosition(survey) //this getPosition function is the one in question

ellipse(xPos,100,50)

}

我觉得这是一些模数学,但是我不能完全理解它。 感谢您的关注!

zcczXS 回答:遍历数组和迭代器变得大于长度时(在图形渲染循环中),如何返回开始

您的问题的解决方案是模数(%)运算符。该运算符将返回除法的其余部分。

例如11 % 4 = 3

const positions = [297,298,299,300];

function getPosition(positions,i) {
  return positions[i % positions.length];
}

console.log(getPosition(positions,4));  // 297
console.log(getPosition(positions,11)); // 300
console.log(getPosition(positions,22)); // 299

本文链接:https://www.f2er.com/3155454.html

大家都在问