| | 353 | |
|---|
| | 354 | /** |
|---|
| | 355 | * 2乗した数値を返します |
|---|
| | 356 | * @param value 数値 |
|---|
| | 357 | * @return 2乗した数値 |
|---|
| | 358 | * @author michi at seyself.com |
|---|
| | 359 | */ |
|---|
| | 360 | public static function sq(value:Number):Number |
|---|
| | 361 | { |
|---|
| | 362 | return value * value; |
|---|
| | 363 | } |
|---|
| | 364 | |
|---|
| | 365 | /** |
|---|
| | 366 | * (x1,y1)と(x2,y2)の距離を求めます |
|---|
| | 367 | * @param x1 |
|---|
| | 368 | * @param y1 |
|---|
| | 369 | * @param x2 |
|---|
| | 370 | * @param y2 |
|---|
| | 371 | * @return |
|---|
| | 372 | * @author michi at seyself.com |
|---|
| | 373 | */ |
|---|
| | 374 | public static function dist(x1:Number, y1:Number, x2:Number, y2:Number):Number |
|---|
| | 375 | { |
|---|
| | 376 | var nx:Number = x2 - x1; |
|---|
| | 377 | var ny:Number = y2 - y1; |
|---|
| | 378 | return Math.sqrt(nx * nx + ny * ny); |
|---|
| | 379 | } |
|---|
| | 380 | |
|---|
| | 381 | /** |
|---|
| | 382 | * (x1,y1,z1)と(x2,y2,z2)の距離を求めます |
|---|
| | 383 | * @param x1 |
|---|
| | 384 | * @param y1 |
|---|
| | 385 | * @param z1 |
|---|
| | 386 | * @param x2 |
|---|
| | 387 | * @param y2 |
|---|
| | 388 | * @param z2 |
|---|
| | 389 | * @return |
|---|
| | 390 | * @author michi at seyself.com |
|---|
| | 391 | */ |
|---|
| | 392 | public static function dist3(x1:Number, y1:Number, z1:Number, x2:Number, y2:Number, z2:Number):Number |
|---|
| | 393 | { |
|---|
| | 394 | var nx:Number = x2 - x1; |
|---|
| | 395 | var ny:Number = y2 - y1; |
|---|
| | 396 | var nz:Number = z2 - z1; |
|---|
| | 397 | return Math.sqrt(nx * nx + ny * ny + nz * nz); |
|---|
| | 398 | } |
|---|
| | 399 | |
|---|
| | 400 | /** |
|---|
| | 401 | * 標準値を求めます |
|---|
| | 402 | * @param value |
|---|
| | 403 | * @param low |
|---|
| | 404 | * @param high |
|---|
| | 405 | * @return |
|---|
| | 406 | * @author michi at seyself.com |
|---|
| | 407 | */ |
|---|
| | 408 | public static function norm(value:Number, low:Number, high:Number):Number |
|---|
| | 409 | { |
|---|
| | 410 | return (value - low) / (high - low); |
|---|
| | 411 | } |
|---|
| | 412 | |
|---|
| | 413 | /** |
|---|
| | 414 | * 2つの数値 (value1,value2) の間 (amt) の数値を求めます |
|---|
| | 415 | * @param value1 |
|---|
| | 416 | * @param value2 |
|---|
| | 417 | * @param amt |
|---|
| | 418 | * @return |
|---|
| | 419 | * @author michi at seyself.com |
|---|
| | 420 | */ |
|---|
| | 421 | public static function lerp(value1:Number, value2:Number, amt:Number):Number |
|---|
| | 422 | { |
|---|
| | 423 | return value1 + (value2-value1) * amt; |
|---|
| | 424 | } |
|---|
| | 425 | |
|---|
| | 426 | /** |
|---|
| | 427 | * |
|---|
| | 428 | * @param value |
|---|
| | 429 | * @param low1 |
|---|
| | 430 | * @param high1 |
|---|
| | 431 | * @param low2 |
|---|
| | 432 | * @param high2 |
|---|
| | 433 | * @return |
|---|
| | 434 | * @author michi at seyself.com |
|---|
| | 435 | */ |
|---|
| | 436 | public static function map(value:Number, low1:Number, high1:Number, low2:Number, high2:Number):Number |
|---|
| | 437 | { |
|---|
| | 438 | return (value - low1) / (high1 - low1) * (high2 - low2) + low2; |
|---|
| | 439 | } |
|---|
| | 440 | |
|---|
| | 441 | |
|---|
| | 442 | |
|---|