授業メモ
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
gainerなど使用する際によく使うワザですが
何らかのパラメーターをいじったりif文なので条件を変えたいときに
数字をスケーリングしたい事があります。
その方法を教えます。
何らかのパラメーターをいじったり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
となります。
後日カスタムクラスについての説明をしますが、
よく使う物や上記のような公式をカスタムクラスにしておけば
簡単に呼び出す事ができます。
スケール結果 = (入力値 - 入力最小値) * (出力最大値 - 出力最小値) / (入力最大値 - 入力最小値) + 出力最大値
以上の式で計算できます。
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