當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。