| | 322 | /** |
|---|
| | 323 | * 4つの座標数値からスプライン曲線の中間座標を取得します。 |
|---|
| | 324 | * |
|---|
| | 325 | * @param p0 始点座標数値 |
|---|
| | 326 | * @param p1 通過点座標数値(求められる曲線の始点) |
|---|
| | 327 | * @param p2 通過点座標数値(求められる曲線の終点) |
|---|
| | 328 | * @param p3 終点座標数値 |
|---|
| | 329 | * @param t 2 つの座標間の補間値。 0 から 1 までの数値 |
|---|
| | 330 | * @return p1 から p2 の間にある t の位置を示す座標値 |
|---|
| | 331 | * @author michi at seyself.com |
|---|
| | 332 | */ |
|---|
| | 333 | public static function spline(p0:Number, p1:Number, p2:Number, p3:Number, t:Number):Number |
|---|
| | 334 | { |
|---|
| | 335 | var v0:Number = (p2 - p0) * 0.5; |
|---|
| | 336 | var v1:Number = (p3 - p1) * 0.5; |
|---|
| | 337 | var t2:Number = t * t; |
|---|
| | 338 | var t3:Number = t2 * t; |
|---|
| | 339 | return (2 * p1 - 2 * p2 + v0 + v1) * t3 + |
|---|
| | 340 | ( -3 * p1 + 3 * p2 - 2 * v0 - v1) * t2 + v0 * t + p1; |
|---|
| | 341 | } |
|---|
| | 342 | |
|---|