スライド 1

Similar documents
問 1 図 1 の図形を作るプログラムを作成せよ 但し ウィンドウの大きさは と し 座標の関係は図 2 に示すものとする 図 1 作成する図形 原点 (0,0) (280,0) (80,0) (180,0) (260,0) (380,0) (0,160) 図 2 座標関係 問 2

情報システム設計論II ユーザインタフェース(1)

Processingをはじめよう

Processingをはじめよう

情報システム設計論II ユーザインタフェース(1)

課題

pp2018-pp4base

Microsoft PowerPoint - [150421] CMP実習Ⅰ(2015) 橋本 CG編 第1回 幾何変換.pptx

CG

Processing入門マニュアル17

課題

Microsoft PowerPoint P演習 第10回 関数.ppt [互換モード]

pp2018-pp9base

情報システム設計論II ユーザインタフェース(1)

<4D F736F F D2089A E838D815B838B B838082C582C D834F F08A7782D42E646F6378>


Microsoft PowerPoint P演習 第5回 当たり判定(2)【課題】.pptx

プログラミング演習 Ⅰ 第 14 回 2017/6/5( 月 ) ゲームを作る クイズ 担当 : 紅林林

スライド 1

pp2019-pp10-base

情報システム設計論II ユーザインタフェース(1)

課題

CG

PowerPoint プレゼンテーション


Graphics with Processing モデリング 塩澤秀和 1

<4D F736F F D B B83578B6594BB2D834A836F815B82D082C88C60202E646F63>

第2章 Macintoshの基本操作

pp2018-pp10base

画像 images/ SpaceShuttle.png を指定します <!DOCTYPE html> <html> <head> <title>circleanime1</title> <meta charset="utf-8"> <link rel="stylesheet" type="text/


イントロダクション

課題

2 個の円の移動サンプル 9-2 float y0,y1; // 円の中心の Y 座標 float x0,x1; // 円の中心の X 座標 float v0,v1; // 円の縦方向の移動速度 int radius; size(300,400); radius = 10; v0 = random(

Computer Graphics

C#の基本

スライド 1

Java KK-MAS チュートリアル

Microsoft Word - Grspes…~…j…}…j…–…A…‰6.0.doc

課題

関数の定義域を制限する 関数のコマンドを入力バーに打つことにより 関数の定義域を制限することが出来ます Function[ < 関数 >, <x の開始値 >, <x の終了値 > ] 例えば f(x) = x 2 2x + 1 ( 1 < x < 4) のグラフを描くには Function[ x^

JTrimで「さくらんぼ《を描く[下巻]

医用工学概論  Medical Engineering (ME)   3年前期の医用工学概論実習と 合わせ、 医療の現場で使用されている 医用機器を正しく安全に使用するために必要な医用工学(ME)の 基礎知識を習得する。

第32回_プレゼン資料_菅原(Unityはじめるよ~上半身だけ動かす2~)

アクション講座 第1回目

教材ドットコムオリジナル教材 0から始めるiアフ リ リファレンス i アプリ簡易リファレンス ver i アプリ Java 独自のメソッド (1)iアプリの命令を使えるようにする import com.nttdocomo.ui.*; (2) 乱数を使う import java.u

コンピュータグラフィックスS 演習資料

Microsoft PowerPoint - info_eng3_05ppt.pptx

ように記述をします div1 要素 span 要素 2 個 div3 要素 span 要素 4 個 div5 要素 span 要素 1 個 div7 要素 span 要素 2 個 div2 要素 span 要素 1 個 div4 要素 span 要素 2 個 div6 要素 span 要素 2 個

使って ソースコードで書かれた処理を実行しています まず ソースコードをバイトコード (byte code) と呼ばれる仮想的な機械語に変換します そのバイトコードを仮想機械 (virtual machine) と呼ばれるインタープリンタが読み込み 実行をしていきます バイトコード呼ばれる命令はシン

PDF Convertor for mac スタートアップガイド

4 正しい位置を持った 数値地図 25000( 空間データ基盤 ) の上に カラー空中写真 が読み込まれます この状態では カラー空中写真画像 は位置のデータを持っていないので 正しい位置に読み込まれていません ここから 画像位置合せ の作業を行います 地図画像は色調を変えることができます 薄くする

3. 文字の入力 文字 ボタンをクリックします 文字入力したい範囲をドラックし 文字枠を作成します 文字を入力します この作業を繰り返します マウスポインタの形 4. 文字枠のサイズ変更 拡大 ボタンをクリックします 大きさを変えたい文字枠をクリックします マウスポインタを文字枠の右下のハンドル (

目次 1. ログイン ログアウト デスクトップ ( 例 :Word Excel 起動中 ) Dock( 例 :Word Excel 起動中 ) Finder ウィンドウ メニューバー ( 例 :Word 起動中 )...

課題

PowerPoint プレゼンテーション

挙動チェックポイントなどセミコロン ; を忘れていませんか? 黄色なんだか動かないで表示されている部分またはその少し前 Syntax error, maybe a missing にセミコロンを忘れている場所はありま semicolon? などと表示されます せんか? なんだか動作がおかしい の部分

Microsoft Word - macマニュアル【 】.doc

Microsoft Word - 415Illustrator

配付資料

ContentsViewマニュアル(201001版)

transform: skewx(x 軸の傾斜角度 ) transform: skewy(y 軸の傾斜角度 ) transform: skew(x 軸の傾斜角度, Y 軸の傾斜角度 ) skewx( ) は X 軸に沿って傾斜します skewy( ) は Y 軸に沿って傾斜します skew( ) は

画像参照画像送り 5 画像下部に再生ボタンが表示されます 再生ボタンをクリックすると 自動コマ送りされます 1

基本作図・編集

Windows用タブレットドライバー簡易ガイド

JavaScript 演習 2 1

コンピュータ中級B ~Javaプログラミング~ 第3回 コンピュータと情報をやりとりするには?

もう少し数学っぽい関数もあります 関数名 abs(x) sqrt(x) sq(x) pow(x,n) exp(x) log(x) dist(x1, y1, x2, y2) constrain(v, m0, m1) lerp(v0,v1,t) map(v, low1, high1, low2, hig

Microsoft Word - サンプル _図面編集_.doc

画像ファイルを扱う これまでに学んだ条件分岐, 繰り返し, 配列, ファイル入出力を使って, 画像を扱うプログラムにチャレンジしてみよう

Windows用タブレットドライバー簡易ガイド Ver.5.06版

1/2

写真の閲覧方法 1. 閲覧する納品データの種類の選択 ( 写真 ) P3 写真の閲覧写真の閲覧写真の閲覧 2. 写真を一覧から選択 表示 3. 写真をサムネイル一覧から選択 表示 4. 写真をアルバム形式で表示 P5~ P7~ P9~ 5. 写真の便利な表示方法 拡大 / 縮小 回転 明るさ補正 6

目次 1. 地理院地図 Globe とは 基本操作 操作概要 地理院地図 Globe へのアクセス方法 基本画面 地図の操作 地図のスクロール 地図のズーム

MMC Unity講座

Microsoft PowerPoint - prog07.ppt

</div> </div> </body> </html> CSS の記述 (3DCubeAnime1.css) #stage ステージのスタイルを指定します 背景色を黒色で指定します 画像に軽く遠近感を出すために perspective: 1000px; と指定し perspective-orig

大容量情報検索論

デザイン戦略(コンピュータアニメーション) 2009年度春学期

基本作図・編集

触覚マウスライブラリを使った 触覚付き Web ページの作り方 ver 富士ゼロックス株式会社 -1-

<!DOCTYPE html> <html> <head> <title>spaceorbitanime</title> <meta charset="utf-8"> <link rel="stylesheet" type="text/css" href="spaceorbitanime.css">

Microsoft Word IL3_1.doc

Microsoft Word - VB_10.doc

<4D F736F F D20438CBE8CEA8D758DC F0939A82C282AB2E646F63>

サンプル CSS web ページを開くと同時にピエロの玉乗りが動き出すアニメーションを作ってみましょう AnimeAuto の説明 HTML の記述 (AnimeAuto.html) ピエロの画像に pierrot という id を 玉の画像に ball という id を付けておきます <!DOCT

中綴じ3・4級.ren

Graphical User Interface 描画する

演算増幅器

Wordの学習

14.event-handling

Microsoft PowerPoint - kougi4.ppt

PsychoPy Builderにおける 実験の動的な制御の方法

file:///C:/Users/k-hidume/AppData/Local/Temp/~hh8CD7.htm

情報処理 Ⅰ 前期 2 単位 年 コンピューター リテラシー 担当教員 飯田千代 ( いいだちよ ) 齋藤真弓 ( さいとうまゆみ ) 宮田雅智 ( みやたまさのり ) 授業の到達目標及びテーマ コンピューターは通信技術の進歩によって 私達の生活に大きな影響を与えている 本講座は 講義と

コンピュータ中級B ~Javaプログラミング~ 第3回 コンピュータと情報をやりとりするには?

CodeGear Developer Camp

Microsoft PowerPoint - OOP.pptx

Microsoft PowerPoint - [150428] CMP実習Ⅰ(2015) 橋本 CG編 第2回 ベジエ曲線とフラクタル.pptx

スタイルシートでデザインを整えよう

Transcription:

グラフィックスの世界第 3 回 サイバーメディアセンター サイバーコミュニティ研究部門安福健祐

Processing によるアニメーション

setup と draw void setup() size(400, 400); void draw() ellipse( mousex,mousey,100,100); void とか setup とか draw とかはじめて見る が出てきてややこしい ellipseは円描く関数でした mousex, mouseyは特別な変数のようだ

関数を定義 関数の書き方 void setup() 命令 ; 関数を自分で作ることができる voidは戻り値がないという意味 ( 今はとりあえず無視 ) setupが関数の名前 通常 関数の名前は自由でつけるが setup と draw は特別! setup は最初に 1 回呼び出される関数 draw は画面が更新される度に繰り返し呼び出される関数

setup と draw void setup() size(400, 400); void draw() ellipse( mousex,mousey,100,100); setup というのは 最初に1 回だけ実行される 特別な関数 draw というのは 繰り返して実行される 特別な関数 関数内で実行されるプログラムを で囲むのがルール void は戻り値がないという意味だが とりあえず無視

画面を繰り返し更新するプログラム void setup() size(400, 400); void draw() background(255); ellipse( mousex,mousey,100,100); 繰り返し実行される draw() の最初に 背景を白くする処理を追加 255 は白という意味

クリックした時に画面をクリア void setup() size(400, 400); void draw() if( mousepressed ) background(255); ellipse( mousex,mousey,100,100); マウスのボタンを押したときだけ背景を白くする 変数 mousepressed はマウスのボタンが押されていたら値がtrue (1) になっている 押されていないときはfalse(0) になる if 文とは

if 文 if 文の書き方 if( 条件 ) 命令 ; () 内の条件が成り立てば ( 真であれば ) 内の命令が実行される 演算子 意味 例 > 大なり If( a > b ) >= 大なりイコール If( a >= b ) < 小なり If( a < b ) <= 小なりイコール If( a <= b ) == イコール If( a == b )!= ノットイコール If( a!= b ) if( a=0 ) とすると変数 a に 0 が代入されるだけ

マウスボタンを押したとき図形を描く void setup() size(400, 400); void draw() if( mousepressed ) ellipse( mousex,mousey,20,20); マウスのボタンを押したときにカー ソルの位置に図形を描く

キーボード ( 矢印 ) で図形を動かす int x = 0; void setup() size(400, 400); void draw() background(255); if( keypressed && keycode == RIGHT ) x += 10; if( keypressed && keycode == LEFT ) x -= 10; ellipse( x, height/2, 20, 20); キーボードの を押すと図形が右に動く キーボードの を押すと図形が左に動く

キー入力処理 キーボードのキーが押されているかチェック 何かキーが押さたとき 変数 keypressed が真 (1) になる 何もキーが押されていない場合は偽 (0) 矢印キーの種類 変数 keycode には矢印キー等の種類格納されている 変数 key には文字の種類が格納されている keycode UP DOWN RIGHT LEFT キーボード

グローバル変数 図形の x 座標は draw 関数繰り返し呼ばれている間 値が保存されている必要がある グローバル変数を使う グローバル変数 どの関数からも値を参照できる変数 関数の外で定義する ローカル変数 関数内からしか値を参照できない変数 関数内で定義する void setup() size(400, 400); void draw() int x = 0; background(255); if( keypressed && keycode == RIGHT ) x += 10; if( keypressed && keycode == LEFT ) x -= 10; ellipse( x, height/2, 20, 20); ローカル変数にするとうまく動きません

練習 2: 上下にも図形を動かす 図形を上下左右にも動くようにプログラムを追加してください キーボードの を押すと図形が右に動く キーボードの を押すと図形が左に動く キーボードの を押すと図形が下に動く キーボードの を押すと図形が上に動く

補足 2: 特別な関数 void keypressed() void keyreleased() keypressed は 何かキーが押されたときに実行される 特別な関数 keyreleased は 何かキーが離されたときに実行される 特別な関数 関数に分けることで前述のプログラムよりも見やすくなるメリット キーの同時押しにも対応できる (ex02a 参照 )

サンプルプログラムについて

アニメーション 1 ファイル名 animation01 マウスをクリックした位置を中心にした円が広がっていく 円の色がランダムに変わる 広がるスピードは加速していく

ランダムに色を変えるには random() により乱数を発生させる random(max); max: 乱数の最大値 fill() により図形を塗りつぶす色を設定する fill( red, green, blue); red: 赤色成分 (0~255) green: 緑色成分 (0~255) blue: 青色成分 (0~255)

円をだんだん大きくするには 半径を少しずつ大きくしながら繰り返し円を描く float speed = 0.0; float radius = 0.0; void draw() speed += 0.5; radius += speed; ellipse( mousex,mousey,100,100); マウスをクリックすると 速度と半径を 0 に戻す

アニメーション 2 ファイル名 animation02 風車の画像を読み込み表示する マウスの左ボタンを押すと風車が右回転する 押し続けていると加速する マウスの右ボタンを押すと風車が左回転する 押し続けていると加速する 何も押さなければ 次第に止まる

画像ファイルを読み込んで表示するには Processing のウィンドウに画像ファイルをドラッグ & ドロップ プログラムを保存してあるフォルダに data フォルダが作成される data フォルダに画像ファイルがコピーされている 画像読み込み専用の Pimage という型の変数を宣言 PImage img; ファイル名を指定してロードする img = loadimage("kazaguruma.png"); image() により指定した位置に画像を表示する image( img, 0, 0 );

200 ピクセル 座標変換による図形の移動 translate() による図形の移動 translate( x, y ); x: x 方向の移動量 ( ピクセル ) y: y 方向の移動量 ( ピクセル ) translate() を実行した後は図形の原点が変わっている 100 ピクセル size(400,400); translate(100,200); rect(0,0,100,100); x y

座標変換による図形の回転 rotate() による図形の回転 rotate( angle ); angle: 回転角度 ( ラジアン ) rotate() を実行した後は図形の座標軸の角度が変わっている size(400,400); translate(100,200); rotate( radians(10) ); rect(0,0,100,100); radians() は度をラジアンに変換 10 度 x y

速度の表現 CG アニメーションでの等速運動表現 float x = 0.0f; float y = 0.0f; void setup() size( 400, 400 ); x = width/2; framerate(60); void draw() y = y + 1; ellipse( x, y, 10, 10 ); framerate() により 1 秒間に何回 draw() を呼び出すかを設定 draw() が実行されるごとにy 座標に 1を加える draw() が呼び出される間隔が1/60 秒とすると 速度は60ピクセル / 秒

加速度の表現 CG アニメーションでの等速運動表現 float x = 0.0f; float y = 0.0f; float s = 0.0f; void setup() size( 400, 400 ); x = width/2; framerate(60); void draw() s = s + 0.2; y = y + s; ellipse( x, y, 10, 10 ); draw() が実行されるごとにy 座標に変数 sの値を加える sは速度を表す 速度 sはdraw() が実行されるごとに 0.2を加える draw() が呼び出される間隔が1/60 秒とすると 加速度は12ピクセル / 秒 2

停止する表現 アニメーションを停止するのに慣性を考慮するとそれらしく見える ( 例 ) 慣性スクロール 気持ちいい? float x = 0.0f; float y = 0.0f; float s = 0.0f; void setup() size( 400, 400 ); x = width/2; framerate(60); void draw() if ( mousepressed ) s = s * 0.9f; else s = s + 0.2; y = y + s; ellipse( x, y, 10, 10 ); マウス押している間は減速させる ここでの減速方法は物理法則とは無 関係に 0.9 倍しているだけ