📜  p5.js map()函数

📅  最后修改于: 2022-05-13 01:56:40.789000             🧑  作者: Mango

p5.js map()函数

p5.js 中的 map()函数用于在 min2 到 max2 的范围内对范围从 min1 到 max1 的数字进行归一化。

如果要缩放元素,规范化在 p5.js 中非常有用。因为我们知道归一化处理了缩放中的所有比例,所以我们得到了一个完全平衡的缩放。

不仅缩放,而且在任何转换操作中,标准化都非常有帮助。

句法:

map(value, start1, stop1, start2, stop2, [withinBounds])

参数:此函数接受上面提到的六个参数,如下所述:

  • value:要标准化的值。
  • min1:值的当前范围的最小值。
  • max1:值的当前范围的最大值。
  • min2:值的目标范围的最小值。
  • max2:值的目标范围的最大值。
  • withinBounds(可选):这将值的标准化值限制在 [min2, max2] 的范围内。

示例 1: WithinBounds 默认为 false。

Javascript
function setup() {
    noLoop();
}
  
function draw() {
  
    background(220);
  
    // Assume value has range [0, 100]
    let value = 50;
  
    // We want to convert value 
    // in range of [0, 50]
    let newValue = map(value, 0, 100, 0, 50);
  
    console.log(newValue);
}


Javascript
function setup() {
    noLoop();
}
  
function draw() {
  
    background(204);
  
    // Value has a range[0, 100]
    let value = 150;
  
    // We are mapping it in range of [0, 50]
    let newValue1 = map(value, 0, 100, 0, 50);
  
    console.log(newValue1);
  
    // Notice the last parameter is true
    // we are mapping it in range of [0, 50]
    let newValue2 = map(value, 0, 100, 0, 50, true);
  
    console.log(newValue2);
}


输出:

25

示例 2:注意 withinBounds 如何限制值的范围

Javascript

function setup() {
    noLoop();
}
  
function draw() {
  
    background(204);
  
    // Value has a range[0, 100]
    let value = 150;
  
    // We are mapping it in range of [0, 50]
    let newValue1 = map(value, 0, 100, 0, 50);
  
    console.log(newValue1);
  
    // Notice the last parameter is true
    // we are mapping it in range of [0, 50]
    let newValue2 = map(value, 0, 100, 0, 50, true);
  
    console.log(newValue2);
}

输出:

75
50