emotional-box project

Trackback URL

Photos from Flickr

  • Petra
  • Petra
  • Petra
  • Petra
  • Petra
  • Petra

Profile

avatar 小野田 智(オノダサトシ)
日本でWebデザイナーとして活動後、英語習得のために渡豪。18ヶ月の修行期間を経て帰国後、Web業界に復帰、某社にてデザイナーとして勤務中。
詳細

Recent Entries

26th Aug 2004

transColor クラス

マイペースで作ってる万華鏡のFlashでカラーミキサーが必要になった。
一般公開を考えると、専門的なRGBで数値を操作するよりも、HSVのミキサーで直感的に操作させたほうがわかりやすそう。実際にはASのColorクラスの関係上、内部的な処理はRGBに直してから行わなくてはいけないのだけど、FlashにはデフォルトでHSVとRGBを相互変換する関数は用意されていない(はず)

比較的メジャーな処理だと思うから、誰か便利なサンプルでも公開してくれてないかなぁと思ってググってみたのだけど、Flashのサンプルに関しては全く見つからない。Cとか他言語のやつならアルゴリズムの解説つきでいろいろあるのに。
とりあえず、他言語のソースコードを頑張って読んでいたら処理の計算自体はそれほど難しくはないみたい。(なぜ、この計算をするのか?っていうのは、殆どわからないけど…)これなら、うまく翻訳すればASでも動くようになるかも。

ってわけでOOP本を参考に、相互変換を行うクラスメソッドを持つクラスを作ってみた。

transColor Class(暫定版)

参考にしたアルゴリズムに少し問題があるのか、Flashオーサリング上のHSV変換とは若干の誤差が出るけど、それほど気にするレベルではないと思うので、とりあえず公開。使い方は以下の通り。

transColor.HSVtoRGB(h,s,V)
引数:
0 <= h < 360
0 <= s <= 100
0 <= v <= 100
戻り値:オブジェクト
使い方:
クラスパスを設定し以下の様にコードを記述
//ここから
myObj = new Object();
myObj = transColor.HSBtoRGB(0,100,100);
//ここまで
myObj.r = 255 myObj.g = 0 myObj.b=0
が返される。

transColor.RGBtoHSV(r,g,b)
引数:
0 <= r <= 255
0 <= g <= 255
0 <= b <= 255
戻り値:オブジェクト
使い方:HSVtoRGBと同じ

特に対価などは求めませんが、役に立ったら教えてください。
コード上、もっといい書き方があった場合も教えてくれるとうれしいです>上級者の方々


Flash

Leave a comment

名前(必須):

メールアドレス(必須ですが公開されません):

URL(オプション):

スパム防止のために下に表示されている言葉を入力してください:

情報を記録する

emotional box project all rights reserved Satoshi Onoda
powerd by expression engine