忍者ブログ
授業メモ
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

gainerなど使用する際によく使うワザですが
何らかのパラメーターをいじったりif文なので条件を変えたいときに
数字をスケーリングしたい事があります。
その方法を教えます。 



 *****
式自体は簡単な数学でできます。

スケール結果 = (入力値 - 入力最小値) * (出力最大値 - 出力最小値) / (入力最大値 - 入力最小値) + 出力最大値

以上の式で計算できます。
as3に直してみましょう。

var o:Number;   //出力結果
var oMin;Number; //出力最小値
var oMax:Number; //出力最大値
var i:Number;    //入力値
var iMin:Number;  //入力最小値
var iMax:Number;  //入力最大値

o = (i - iMin) * (oMax - oMiin) / (iMax - iMin) + oMin;
if(o < oMin){ o==oMin;}
else if(o > oMax){ o == oMax;} 


以上のコードで計算できます。
例えば、15~30で得られる数値を0~50に直したい場合、
得られた数値が20ならば

o = (20 - 15) * (50 - 0) / (30 -15) + 0
o = 16.66666

となります。
後日カスタムクラスについての説明をしますが、
よく使う物や上記のような公式をカスタムクラスにしておけば
簡単に呼び出す事ができます。
PR
この記事へのトラックバック
この記事にトラックバックする:
[20] [19] [18] [17] [16] [15] [14] [13] [12] [11] [10]
カレンダー
06 2025/07 08
S M T W T F S
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
フリーエリア
最新コメント
最新トラックバック
プロフィール
HN:
Wataru Inaba
性別:
非公開
バーコード
ブログ内検索
P R
忍者ブログ / [PR]
/ Template by Z.Zone