当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Processing PVector.lerp()用法及代码示例


Processing, 类PVector中的lerp()用法介绍。

用法

  • .lerp(v, amt)
  • .lerp(v1, v2, amt)
  • .lerp(x, y, z, amt)

参数

  • v (PVector) 到 lerp 的向量
  • amt (float) 插值量; 0.0(旧向量)和 1.0(新向量)之间的某个值。 0.1 非常接近旧向量; 0.5 介于两者之间。
  • v1 (PVector) 开始的向量
  • v2 (PVector) 到 lerp 的向量
  • x (float) 要适应的 x 分量
  • y (float) 要 lerp 的 y 分量
  • z (float) 要 lerp 到的 z 分量

返回

  • PVector

说明

计算从一个向量到另一个向量的线性插值。 (就像常规的 lerp() 一样,但对于向量。)



请注意,此方法有一个static 版本和两个non-static 版本。静态版本 lerp(v1, v2, amt) 被赋予两个向量以进行插值并返回一个新的 PVector 对象。通过直接引用 PVector 类来使用静态版本。 (参见上面的中间示例。)非静态版本 lerp(v, amt)lerp(x, y, z, amt) 不会创建新的 PVector,而是转换调用它们的 PVector 的值。这些非静态版本执行相同的操作,但前者采用另一个向量作为输入,而后者采用三个浮点值。 (分别参见上面的顶部和底部示例。)

例子

// Non-static (lerp on a specific vector)

PVector current;
PVector target;

void setup() {
  current = new PVector(0.0, 0.0);
  target = new PVector(100.0, 100.0);
  current.lerp(target, 0.5);
  println(current);  // Prints "[ 50.0, 50.0, 0.0 ]"
}
// Static (return a new vector)

PVector start;
PVector end;
PVector middle;

void setup() {
  start = new PVector(0.0, 0.0);
  end = new PVector(100.0, 100.0);
  middle = PVector.lerp(start, end, 0.5);
  println(middle);  // Prints "[ 50.0, 50.0, 0.0 ]"
}
// Non-static (lerp on a specific vector)

PVector v;

void setup() {
  v = new PVector(0.0, 0.0);
}

void draw() {
  v.lerp(mouseX, mouseY, 0.0, 0.1);
  ellipse(v.x, v.y, 20, 20);
}

有关的

相关用法


注:本文由纯净天空筛选整理自processing.org大神的英文原创作品 PVector.lerp()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。