« 八王子市教育委員会と共催のキッズ夏休みプログラミング体験講座を実施してー参加者の喜びの声などー | トップページ | カメラ6台でおもしろ映像体験!? - 360度動画「Crossing Tokyo」 »
コンピュータで色水あぞび
2016年9月 4日 (日) 投稿者: メディア技術コース
みなさん、こんにちは、
リオのオリンピックの閉会式を見た人も多いと思います。色彩豊かで美しかったですね。メディア学部では、アニメを作るにも、ゲームを作るにも、映像制作にも、そして、広告やデザインにも色の作成は重要です。みなさんは、コンピュータで、好みの色を作れますか?今日は一緒に、「コンピュータ色水あそび」をしてみましょう。
コンピュータの中では、色は赤(R)、緑(G)、青(B)の光の3原色で表されます。それぞれの強さを0から1の間の数値で表し、RGBの値の組で1つの色が決まります。例えば、黒は[0,0,0]、白は[1,1,1]なのです。赤は[1,0,0]で表され、暗い赤は[0.5,0,0]などで表現できます。つまり、この組み合わせを自由に作れるようにすれば、どんな色でも作れるわけです!
ここでは、Scilabというツールを使います。Scilabホームページ からダウンロードでき、営利目的でなければ、無料で利用できます。
操作パネルはfigureで作ります。
文字記入欄、スライダー、数値表示窓はいずれもuicontrolという命令で作れます。
スライダーとは、つまみをつまんで動かしてレベル調整をするものです。
figureやuicontrolの中では、いろいろな属性値を設定できます。
'string','R' というのは文字をRに設定しなさい、ということを表します。
場所をしていするのは'position'で、画面の左したからの画素数で枠の場所や大きさを指定できます。
'callback'というのは、スライダーや文字記入枠に書き込みがあった場合に、行われる演算や色の変更を表します。
説明はこのくらいにして、プログラムを作ってみましょう。
Scilabのコンソールから以下を順次打ち込むか、「アプリケーション」メニューのところから呼び出せるエディタSciNotesを起動、プログラムを作成し名前を付けて保存、SciNotesの画面の「実行する」メニューから出力ありで実行してみてください。
//操作画面設定
h = figure( 'position' , [ 100 100 300 100 ] ) ;
set( h , 'figure_name' , 'RGBカラー' ) ;
//色表示窓
hcol = uicontrol( 'style' , 'edit' , 'position' , [ 200 10 80 80 ] ) ;
set( hcol , 'backgroundcolor' , [0,0,0] );
setc = [ ...
'r = get( hsr , ''value'' ) ; g = get( hsg , ''value'' ) ;' ...
'b = get( hsb , ''value'') ; set( hcol , ''backgroundcolor'' ,[ r g b ] );' ...
] ;
//R設定
htr = uicontrol( 'style' , 'text' , 'pos' , [ 10 70 20 20 ] , ...
'string' , 'R' ) ;
sr = ' set( hsr , ''value'' , strtod( get( her , ''string'' ) ) ) ; ' ;
her = uicontrol( 'style' , 'edit' , 'position' , [ 150 70 40 20 ] , ...
'call' , 'execstr(sr);execstr(setc);' ) ;
cr = ' set( her , ''string'' , string( hsr.value ) ) ; '
hsr = uicontrol( 'style' , 'slider' , 'pos' , [ 40 70 100 20 ] , ...
'min' , 0 , 'max' , 1 , 'call' , 'execstr(cr) ; execstr( setc ) ;' ) ;
//G設定
htg = uicontrol( 'style' , 'text' , 'pos' , [ 10 40 20 20 ] , ...
'string' , 'G' ) ;
sg = ' set( hsg , ''value'' , strtod( get( heg , ''string'' ) ) ) ; ' ;
heg = uicontrol( 'style' , 'edit' , 'position' , [ 150 40 40 20 ] , ...
'call' , 'execstr(sg);execstr(setc);' ) ;
cg = ' set( heg , ''string'' , string( hsg.value ) ) ; '
hsg = uicontrol( 'style' , 'slider' , 'pos' , [ 40 40 100 20] , ...
'min' , 0 , 'max' , 1 , 'call' , 'execstr(cg) ; execstr( setc ) ;' ) ;
//B設定
htb = uicontrol( 'style' , 'text' , 'pos' , [ 10 10 20 20 ] , ...
'string' , 'B' ) ;
sb = ' set( hsb , ''value'' , strtod( get( heb , ''string'' ) ) ) ; ' ;
heb = uicontrol( 'style' , 'edit' , 'position' , [ 150 10 40 20 ] , ...
'call' , 'execstr(sb);execstr(setc);' ) ;
cb = ' set( heb , ''string'' , string( hsb.value ) ) ; '
hsb = uicontrol( 'style' , 'slider' , 'pos' , [ 40 10 100 20 ] , ...
'min', 0 , 'max' , 1 , 'call' , 'execstr(cb) ; execstr( setc ) ;' ) ;
「在学生向け」カテゴリの記事
- チュラロンコン大学からのインターン学生との再会(2019年03月14日)
- あにめたまご2019「文化庁若手アニメータ等人材育成事業」(2019年03月12日)
- タイの提携校、キンモンクット大学トンブリに短期訪問しませんか?(2019年03月11日)
- 学会紹介:ADADA Japan学術大会と情報処理学会EC2019(2019年03月09日)
- 大学院授業:プロシージャルアニメーション特論の紹介(2019年03月08日)
「研究紹介」カテゴリの記事
- 映像表現・芸術科学フォーラムにて卒研生が優秀発表賞を受賞(2019年03月17日)
- 自由な言葉でライブパフォーマンスをアレンジする(2019年03月16日)
- 先端メディア学II(2年生)の学生が人工知能学会の研究会で発表(2019年03月15日)
- 映像表現・芸術科学フォーラムでの発表(2019年03月10日)
- ゲームの学会?!(2019年03月07日)
「高校生向け」カテゴリの記事
- チュラロンコン大学からのインターン学生との再会(2019年03月14日)
- 大学院授業:プロシージャルアニメーション特論の紹介(2019年03月08日)
- ゲームの学会?!(2019年03月07日)
- 香港理工大学デザイン学部の紹介(2019年03月04日)
- 香港理工大学デザイン学部を訪問し、学部長Lee先生にお会いしました!(2019年03月03日)
CALENDARカレンダー
RECENT ENTRY最新の投稿
- メディア学部の情報はこちら
- メディアコンテンツコースの情報はこちら
- メディア技術コースの情報はこちら
- メディア社会コースの情報はこちら
- 入試情報はこちら
- 資料請求はこちら(大学案内、募集要項等)
- 東京工科大学の情報はこちら