CG

Similar documents
スライド 1

スライド 1

スライド 1

CG

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

課題

CG

Computer Graphics

CG

pp2018-pp9base

CG


Processingをはじめよう

CG

pp2018-pp4base

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

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

Processing入門マニュアル17

課題

大容量情報検索論

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

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

<4D F736F F D B B83578B6594BB2D834A836F815B82D082C88C60202E646F63>

イントロダクション

配付資料

Microsoft PowerPoint ppt

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

もう少し数学っぽい関数もあります 関数名 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

pp2019-pp10-base

Processingをはじめよう

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

pp2018-pp10base

JavaScript 演習 2 1

CG

<907D945D F D C789C195CF8D5888EA97978CF68A4A97702E786C7378>


Microsoft PowerPoint - kougi6.ppt

Java言語 第1回

課題

Javaプログラムの実行手順

PowerPoint プレゼンテーション

JavaScriptで プログラミング

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

PowerPoint プレゼンテーション

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

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

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

GUI プログラミング第 4 Graph ~ 手書認識と関数グラフ描画 ~ マウスで数式を書いて認識し 関数グラフを描画する < 手書認識とグラフ描画のステップ> ステップ 1_1 フレームの作成 ステップ 1_2 マウスで自由に線を書く ステップ 2-1 手書認識認識結果を標準出力する ステップ

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

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

課題

課題

もう少し詳しい説明 1. アルゴリズムを構築するための 4 枚のサンプル画像を次々と読み込むここで重要なことは画像を順番に読み込むための文字列操作 for 文の番号 i を画像の番号として使用している strcpy は文字列のコピー,sprinf は整数を文字列に変換,strcat は文字列を繋げる

課題

Java 基礎問題ドリル ~ メソッドを理解する ~ 次のプログラムコードに 各設問の条件にあうメソッドを追加しなさい その後 そのメソッドが正しく動作することを検証するためのプログラムコードを main メソッドの中に追加しなさい public class Practice { // ここに各設問

<4D F736F F D2089A E838D815B838B B838082C582C D834F F08A7782D42E646F6378>

基本作図・編集

CodeGear Developer Camp

Prog2_15th

基本作図・編集

FORTRAN( と C) によるプログラミング 5 ファイル入出力 ここではファイルからデータを読みこんだり ファイルにデータを書き出したりするプログラムを作成してみます はじめに テキスト形式で書かれたデータファイルに書かれているデータを読みこんで配列に代入し 標準出力に書き出すプログラムを作り

課題

Prog1_6th

Microsoft PowerPoint - prog04.ppt

Prog1_12th

問題 1 次の文章は 作業環境について述べたものである を解答群 { } より選び その記号で答えよ にあてはまる適切なもの 設問 1. < 図 1>はルーラーの一部である 1に示されるインデントマーカーを移動することにより を設定することができる < 図 1> { ア. 1 行目のインデントイ.

設問 println はそこで指定されている内容を出力して改行するものである. 一方,print は内容を出力して改行しないものである. 下記のプログラムそれぞれについて出力結果がどうなるか回答せよ. 下記のプログラム - を実行すると, fms という文字列が 回表示される. プログラム - vo


1~50 の白丸付き数字は 記号と特殊文字 から入力できる この機能は OfficeXPSP3 の限定される Windows Update と共に最新版をダウンロードすればよい 1. 挿入 記号と特殊文字 記号と特殊文字 画面の 記号と特殊文字 タブを開く フォント は MSP ゴシック MS ゴシ

スライド 1


2006年10月5日(木)実施

(Microsoft Word - 01PowerPoint\217\343\213\211C\203p\203^\201[\203\223\222m\216\257\225\\\216\206.doc)

以下に java.awt.graphics クラスの主なメソッドを示す (Graphics クラスの ) メソッド drawline(int x1, int y1, int x2, int y2) drawrect(int x, int y, int width, int height) fillr

Mapmakerfor の手順下絵を準備 作者の設定した大きさで作成する場合 下絵にする地図を挿入 トリミングと大きさの調整 大きさを調整した画像を保存 下絵を背景に設定 作成画面の大きさを調整 1 自分で用意した下絵を背景にする場合 下絵を背景に設定 作成画面の大きさを調整 画像が大きい場合シート

本テキストの作成環境は 次のとおりです Windows 7 Home Premium Microsoft Excel 2010( テキスト内では Excel と記述します ) 画面の設定 ( 解像度 ) ピクセル 本テキストは 次の環境でも利用可能です Windows 7 Home

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

< F2D B825082CC96E291E82E6A7464>

2 / 16 ページ 第 7 講データ処理 ブック ( ファイル ) を開く第 6 講で保存したブック internet.xlsx を開きましょう 1. [Office ボタン ] から [ 開く ] をクリックします 2. [ ファイルの場所 ] がデータを保存している場所になっている

<4D F736F F D2091E63589F182628CBE8CEA8D758DC08E9197BF2E646F6378>

Field Logic, Inc. 標準モード 3D モデル作成 配置編 Field Logic, Inc. 第 1 版

演算増幅器

Microsoft PowerPoint - info_eng3_05ppt.pptx

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

参考 作成する図形のイメージ 2. 演習 パワーポイントの利用 パワーポイントは 本来プレゼン資料を作成するためのソフトウェアであるが 図形を作成する機能が 充実しているため ポスターなどイラスト作成においても活用される パワーポイントの図形作成機能は 上部タブの 挿入 にまとめられており 主に 図

問題 1 次の文章は Excel の作業環境について述べたものである 下線部の記述の正誤を判断し 解答群 { } の記号で答えよ ただし 下線部以外の記述に誤りはないものとする 設問 1. クイックアクセスツールバーには アプリケーション名やファイル名が表示される 設問 2. 数式バーのる ボタンを

ことばを覚える

ファイルを直接編集する画面を切り替えることができる. 図 3 標準のレイアウトを削除する (2) グラフィカル レイアウト画面で LinearLayout(Vertical) を追加するパレットウィンドウの レイアウト の中にある LinearLayout(Vertical) をドラッグして, 編集

Graphical User Interface 描画する

Microsoft Word - gnuplot

Microsoft PowerPoint - 04.pptx

<4D F736F F D AF89E6919C B834A C9F8DF B838B82CC82B B F E646F63>

このうち ツールバーが表示されていないときは メニューバーから [ 表示 (V)] [ ツールバー (T)] の [ 標準のボタン (S)] [ アドレスバー (A)] と [ ツールバーを固定する (B)] をクリックしてチェックを付けておくとよい また ツールバーはユーザ ( 利用者 ) が変更

C#の基本

グラフを作成

KeyListener init addkeylistener addactionlistener addkeylistener addkeylistener( this ); this.addkeylistener( this ); KeyListener public void keytyped

エクセルの基礎を学びながら、金額を入力すると自動的に計算され、1年分の集計も表示される「おこづかい帳」を作りしょう

Assignment_.java /////////////////////////////////////////////////////////////////////// // 課題 星の画像がマウスカーソルを追従するコードを作成しなさい 次 ///////////////////

Microsoft PowerPoint - 講義資料-mlib

デジタル表現論・第6回

Transcription:

Grahics with Processig 2016-05 複雑な図形の描画 htt://vilab.org 塩澤秀和 1

2006-2016 H. SHIOZAWA htt://vilab.org 5.1 頂点列による図形描画 複雑な図形描画 begishae( 図形 ) 頂点列モードの開始 図形が空欄なら頂点を線で結ぶ ( 折れ線か多角形になる ) その他, 下記図形を指定できる POINTS, LINES, TRIANGLES, TRIANGLE_FAN, TRIANGLE_STRIP, QUADS, QUAD_STRIP edshae() 頂点列モードの終了 edshae(close): 最初の点と最後の点を結ぶ線を描く 塗りつぶし fill() とoFill() で指定できる 頂点の追加 vertex(x, y) 図形に次の頂点を加える strokeで色指定 (P2Dモード) curvevertex(x, y) 曲線でつなぐ頂点を追加する beziervertex(x1, y1, x2, y2, x3, y3) ベジエ曲線をつなげる 例 ( 塗りつぶさない多角形 ) ofill(); begishae(); vertex(30, 20); vertex(30, 75); vertex(50, 75); vertex(50, 20); edshae(close); 2

2006-2016 H. SHIOZAWA htt://vilab.org 5.2 画像の貼り付け 2D テクスチャマッピング texture( 画像 ) 画像 : PImage 型 (3.4 参照 ) テクスチャ画像の設定 begishae(), edshae() の中で指定する size 関数でP2Dモードを指定 vertex(x, y, u, v) 通常のvertex(x, y) の処理に加えて, テクスチャ画像の座標 (u, v) を対応づけて貼り付ける 画像の一部分だけも利用可能 texturemode( モード ) uv 座標の指定モード NORMAL: 0.0~1.0 IMAGE: 実際の画像の座標 PImage ic; P2Dモードで利用可能 void setu() { size(800, 800, P2D); ic = loadimage("sharaku.jg"); void draw() { backgroud(0); it w = ic.width; it h = ic.height; // ostroke(); begishae(quad_strip); texture(ic); for (float f = 0; f < 1.1; f += 0.1) { float x = mousex * si(f * PI); float y = f * h; vertex(x, y, 0, y); vertex(x + w, y, w, y); edshae(); 3

2006-2016 H. SHIOZAWA htt://vilab.org 5.3 図形の回転 拡大 ( 予習 ) 基本的な書きかた ushmatrix(); traslate(x, y); rotate(a); /* (x,y) からの相対位置で描画 */ omatrix(); 簡単な意味 ushmatrix()~omatrix() 座標の変更部分を囲む traslate(x, y) 座標原点 ( 回転 拡大の中心 ) を (x, y) に移動する rotate(a) 原点を中心に,aラジアン回転 scale(s), scale(sx, sy) 原点を中心に, 拡大または縮小 図形の回転の例 it agle = 0; void setu() { size(400, 400); rectmode(center); void draw() { backgroud(255); fill(#ffa0a0); ushmatrix(); traslate(width/2, height/2); rotate(radias(agle)); ellise(0, 0, 200, 100); omatrix(); agle++; 新しい原点 (0, 0) は新しい原点の位置 4

2006-2016 H. SHIOZAWA htt://vilab.org 5.4 タイポグラフィ ( 文字表示 ) // 描画用フォントの変数 (PFot 型 ) PFot fot1, fot2; void draw() { backgroud(255); void setu() { size(300, 300); // xy 方向の位置あわせ方法 textalig(center, BOTTOM); // Processig 用フォント // ( フォントファイルはあらかじめメニューの // Tools Create Fot... で作っておく ) fot1 = loadfot("imact-48.vlw"); // Java または OS のフォント名のフォント // ( バージョン 1 では下の行が必要 ) // hit(enable_native_fonts); fot2 = createfot(" メイリオ ", 48); // 座標指定モード ( 通常は MODEL) textmode(model); ushmatrix(); traslate(width/2, height/2); rotate(radias(framecout)); fill(128, 0, 0); // 文字の色 textfot(fot1, 32); // フォントとサイズ text("processig", 0, 0); // 文字列と座標 fill(0, 0, 128); textfot(fot2, 48); text(" 角度 " + framecout, 0, 100); omatrix(); 5

2006-2016 H. SHIOZAWA htt://vilab.org 5.5 対話的入力処理 システム変数 mousex, mousey mousepressed 既出 mousex, mousey 前フレームでのマウス位置 mousebutto 押されたマウスボタン LEFT, RIGHT, CENTER keypressed キーが押されていればtrue key 押された文字 keycode 特殊キーのキーコード コールバック関数 void mousepressed() この関数があると, マウスボタンが押されたときに自動的に実行 void mousereleased() 同様に, ボタンが離されたとき void mousemoved() マウスが動かされたとき ( ただし, ボタンは押されていないとき ) void mousedragged() マウスがドラッグされたとき void keypressed() キーが押されたとき void keyreleased() キーが離されたとき 6

2006-2016 H. SHIOZAWA htt://vilab.org 5.6 ファイル入出力 簡易ファイル入出力 loadstrigs(" ファイル ") ファイルから1 行ごとに文字列として読み出して配列に入れる 画像と同様, ファイルは事前に Sketch Add File でデータフォルダにコピーしておく Strig [] lies = loadstrigs("data.txt"); for (it i = 0; i < lies.legth; i++) { // lies[i] の処理 savestrigs(" ファイル ", 配列 ) ファイルに文字列を保存 loadstrigs の逆 ( 行単位 ) 文字列処理 float( 文字列 ), it( 文字列 ) 文字列を数値に変換 str( 数値 ) 数値を文字列に変換 hex( 整数 ) 整数を16 進文字列に変換 uhex( 文字列 ) 16 進文字列を数値に変換 trim( 文字列 ) 文字列から前後の空白を除去 joi( 文字列配列 ) 文字列の連結 slit( 文字列 ) 文字列を空白で分割 (joiの逆) 7

2006-2016 H. SHIOZAWA htt://vilab.org 5.7 演習課題 課題 マウスでクリックした点の座標を順に結ぶ 折れ線 ( または曲線 ) を描くプログラムを作成しなさい 条件 : begishae() を使って折れ線を書くこと begishaeとedshaeは, ループの中に入れない 次ページ (5.8) のプログラムを参考にして改造するとよい できた人は点が動いてアニメーションするようにしてみなさい 動的配列 ArrayList Javaの標準クラス (java.util) ArrayList< クラス名 > list = ew ArrayList< クラス名 >(); 主なメソッド.add(x).size().get(i).set(i, x).remove(i) 説明 末尾に x を追加 要素数を取得 i 番目の要素を取得 i 番目の要素を x に交換 i 番目の要素を削除 注意!! 見やすいプログラムを提出せよ Edit Auto Format でプログラムを整形できる ( かも ) itやfloatはarraylistが使えない ItList, FloatList を利用 例 ) ItList a = ew ItList() 要素の追加は.aed(x) 8

2006-2016 H. SHIOZAWA htt://vilab.org 5.8 演習課題 ( 続き ) // 頂点情報クラス class Vertex { float x, y; color c; Vertex(it x, it y) { this.x = x; this.y = y; c = color(128, 128, 255); // 動的配列を生成 ArrayList<Vertex> vlist = ew ArrayList<Vertex>(); void setu() { size(800, 600, P2D); framerate(30); void draw() { backgroud(0); // ここに begishae for (Vertex v : vlist) { // 下の 2 行を適切に変更すること fill(v.c); ellise(v.x, v.y, 10, 10); // ここに edshae // マウスボタンが押されたときの処理 void mousepressed() { // 動的配列の末尾に要素を追加 Vertex v = ew Vertex(mouseX, mousey); vlist.add(v); 9

2006-2016 H. SHIOZAWA htt://vilab.org 5.9 参考 : ファイル処理の例 // データファイルの形式 : // -100 100 の数値を 1 行に 1 ずつ入れる float[] data; void setu() { size(400, 200); oloo(); stroke(100); fill(255); rectmode(corner); void draw() { backgroud(200); lie(0, height/2, width, height/2); if (data == ull) retur; it w = width / data.legth; for (it i = 0; i < data.legth; i++) { rect(w * i + w/2, height/2, w, -data[i]); void mouseclicked() { // ファイル選択ダイアログを開く selectiut("oe", "fileselected"); // ファイル選択後の処理 void fileselected(file file) { if (file == ull) ritl("file ot foud. "); else loaddata(file.getabsolutepath()); void loaddata(strig fame) { Strig[] lies = loadstrigs(fame); data = ew float[lies.legth]; for (it i = 0; i < lies.legth; i++) data[i] = float(lies[i]); redraw(); 10