Javascript 当一个数字上升时,如何降低一个数字?

Javascript 当一个数字上升时,如何降低一个数字?,javascript,processing,correlation,generative-art,Javascript,Processing,Correlation,Generative Art,在处理过程中,我从鼠标(mouseX)位置获取一个值,随着该值越来越高,我希望渲染的框数量以5步(rotStep)的方式降低 我读了很多书,发现我应该使用的方法叫做“负相关”,或者至少我认为是这样。我从来没有上过高年级的数学课,所以我在这里几乎一无所知。也许有一个功能已经存在,可以做到这一点。在谷歌搜索了很多次之后,我来到这里询问 尝试将mouseX输入除以自身和其他一些随机和,但这似乎比我预期的要复杂 我正在尝试进入生成性艺术生成,可以使用一个提示来进一步尝试在mouseX值降低时渲染更多的长

在处理过程中,我从鼠标(
mouseX
)位置获取一个值,随着该值越来越高,我希望渲染的框数量以5步(
rotStep
)的方式降低

我读了很多书,发现我应该使用的方法叫做“负相关”,或者至少我认为是这样。我从来没有上过高年级的数学课,所以我在这里几乎一无所知。也许有一个功能已经存在,可以做到这一点。在谷歌搜索了很多次之后,我来到这里询问

尝试将
mouseX
输入除以自身和其他一些随机和,但这似乎比我预期的要复杂

我正在尝试进入生成性艺术生成,可以使用一个提示来进一步尝试在
mouseX
值降低时渲染更多的长方体(四边形)

void setup(){
像素密度(displayDensity());
大小(500500);
背景(0);
noFill();
中风(255);
}
作废提款(){
平移(宽度/2,高度/2);
椭圆(0,0,50,50);
背景(0);
mouseX=约束(mouseX,1,宽度);
mouseY=约束(mouseY,1,高度);
浮动旋转最大值=90;
浮动rotStep=(mouseX/15)+5;
//我需要加一个负相关,这样数字
//随着鼠标位置的升高,方块数降低
//所有这些都分为5步
float quadSize=mouseX;
浮点数qs=四位数;

对于(float i=0;i我能给你的最好建议是拿出一张纸和一支铅笔,画一张你想要的鼠标位置和框数的表格。它可能是这样的:

mouseX  boxes
---------------
0      | 50
100    | 40
200    | 30
300    | 20
400    | 10
500    | 0
int boxes = (width - mouseX) / 10;
这只是一个例子,因此您的数字可能会有所不同。但我们的想法是将
mouseX
映射到您想要绘制的框的数量

一旦你有了这个公式,你就可以试着找到一个从
mouseX
到你的盒子计数的公式。这可能是一个单一的公式,或者它可能涉及
if
语句到bucket值

通过从最大可能值中减去,或者使用
mouseX
作为除数,可以获得“负相关性”

float reverseMouseX = width - mouseX;
float inverseMouseX = 1 / mouseX;
对于这两种方法,随着
mouseX
的增加,变量的值将减小。然后可以在等式或
if
语句逻辑中使用这些值

要访问上面显示的示例表,我可以执行以下操作:

mouseX  boxes
---------------
0      | 50
100    | 40
200    | 30
300    | 20
400    | 10
500    | 0
int boxes = (width - mouseX) / 10;
这是一种通用方法,但您可以将其应用到您的目标中,以提出特定的解决方案


祝你好运!

谢谢你的提示,使用reverseMouseX,我成功地得到了负相关性。现在我正在尝试正确的步数。我对旋转步数的输出进行了除法,并“拼凑”了结果。然后将结果乘以5,得到一个以5步递增的计数,效果很好。现在我正在运行另一个不想要的结果,因为生成的框只有在数字非常低时才开始生成,每次我更改公式进行补偿时,脚本都会崩溃。我想我需要一个晚上的休息来考虑它。感谢您的建议和迄今为止的编辑!@Marinus,不客气。我建议整理您的新问题和帖子在它自己的问题上。祝你好运!只是我不让你知道,这是我在你的帮助下设法做到的三篇文章的结果。所以非常感谢!