pp2018-pp9base

Similar documents
pp2018-pp4base

Processing入門マニュアル17

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

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

pp2019-pp10-base

pp2018-pp10base

スライド 1

課題

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

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

大容量情報検索論

課題

cp-7. 配列

7 ポインタ (P.61) ポインタを使うと, メモリ上のデータを直接操作することができる. 例えばデータの変更 やコピーなどが簡単にできる. また処理が高速になる. 7.1 ポインタの概念 変数を次のように宣言すると, int num; メモリにその領域が確保される. 仮にその開始のアドレスを 1

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

メソッドのまとめ

JavaScriptで プログラミング

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

Prog1_6th

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

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

課題

JavaプログラミングⅠ

CG

プログラミングA

Microsoft PowerPoint - chap10_OOP.ppt

プログラミング入門1

Processingをはじめよう

PowerPoint プレゼンテーション

デジタル表現論・第6回

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

PowerPoint プレゼンテーション

Microsoft Word - 3new.doc

講習No.9

プログラミング方法論 II 第 14,15 回 ( 担当 : 鈴木伸夫 ) 問題 17. x 座標と y 座標をメンバに持つ構造体 Point を作成せよ 但し座標 は double 型とする typedef struct{ (a) x; (b) y; } Point; 問題 18. 問題 17 の

Microsoft PowerPoint - 説柔5_間勊+C_guide5ï¼›2015ã•’2015æŒ°æŁŽæš’å¯¾å¿œç¢ºèª“æ¸‹ã†¿ã•‚.pptx

プログラミングA

レコードとオブジェクト

Java講座

Computer Graphics

PowerPoint プレゼンテーション

Microsoft PowerPoint - kougi7.ppt

ExcelVBA

今回のプログラミングの課題 ( 前回の課題で取り上げた )data.txt の要素をソートして sorted.txt というファイルに書出す ソート (sort) とは : 数の場合 小さいものから大きなもの ( 昇順 ) もしくは 大きなものから小さなもの ( 降順 ) になるよう 並び替えること

スライド 1

ToDo: 今回のタイトル

プログラミング基礎

<4D F736F F D2089A E838D815B838B B838082C582C D834F F08A7782D42E646F6378>

<4D F736F F D20438CBE8CEA8D758DC F0939A82C282AB2E646F63>

課題

情報工学実験 C コンパイラ第 2 回説明資料 (2017 年度 ) 担当 : 笹倉 佐藤

スライド 0

PowerPoint プレゼンテーション

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ

プログラミング入門1

情報基礎A

CG

PowerPoint Presentation

Microsoft PowerPoint - exp2-02_intro.ppt [互換モード]

Microsoft PowerPoint - C1(演算と変数).ppt

Prog1_3rd

Taro-テキスト.jtd

Microsoft PowerPoint - handout07.ppt [互換モード]

Microsoft PowerPoint - VBA解説1.ppt [互換モード]

レコードとオブジェクト

Rerank-By-Example: Rerank Search Results by Operation

レコード class Point attr_accessor("x", "y") インスタンス変数の宣言 point.rb

データ構造とアルゴリズム論

C#の基本2 ~プログラムの制御構造~

JAVA入門

Microsoft PowerPoint - C4(反復for).ppt

Processingをはじめよう

02: 変数と標準入出力

プログラミング入門1

02: 変数と標準入出力

PowerPoint プレゼンテーション

プログラミング入門1

2 / 18 ページ 第 13 講データの活用とデータマップの作成 13-1 ホームページの保存 ホームページ (Web ページ ) に表示される様々な情報を ファイルとして保存することができます

Microsoft PowerPoint - kougi6.ppt

プログラミングA

PowerPoint プレゼンテーション

JavaプログラミングⅠ

Javaプログラムの実行手順

kiso2-09.key

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

Microsoft Word - no11.docx

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

基礎プログラミング2015

講習No.8

JAVA入門

4 月 東京都立蔵前工業高等学校平成 30 年度教科 ( 工業 ) 科目 ( プログラミング技術 ) 年間授業計画 教科 :( 工業 ) 科目 :( プログラミング技術 ) 単位数 : 2 単位 対象学年組 :( 第 3 学年電気科 ) 教科担当者 :( 高橋寛 三枝明夫 ) 使用教科書 :( プロ

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

第1回 プログラミング演習3 センサーアプリケーション

Microsoft PowerPoint - 12.ppt [互換モード]

スライド 1

GEC-Java

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

PowerPoint2003基礎編

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

Transcription:

プログラミング入門 Processing プログラミング第 9 回 九州産業大学理工学部情報科学科神屋郁子 ( pp@is.kyusan-u.ac.jp ) 時限 クラス 水 1 機械 ( クラス 3) 水 2 機械 ( クラス 1) 水 4 電気 (B1 B2) 後ろ 5 列は着席禁止 3 人掛けの中央は着席禁止 今後の予定 第 9 回 : 複数の図形 (2) 繰り返しと座標変換第 回 : 画像の表示と音の再生 配列というやや難しい内容を扱う 後期以降に詳しく説明するのでよくわからなくても心配しないように プログラミング入門では 配列の概要とどんなものが作れるのかイメージをつかむことができれば OK! 第 11 回 : 応用課題プログラムの開発第 12 回 :Wordの基本操作と応用課題プログラムについて Wordを用いたレポート作成第 13 回 :Excelの基本操作と Excel VBAによるプログラミング第 14,15 回 : Javaプログラミング定期試験 2 第 9 回の内容 復習 ) 変数 座標変換 並行移動 回転 拡大 配列 データに従って図形を描く データを格納する入れ物 変化するデータを扱うのに使う processing で用意されている変数 mousex, mousey, width, height 自分で変数を作ることもできる ( 変数宣言 ) 型名前 ; 例 ) int x; 整数を扱う名前が x という変数を作る x 3 4

復習 ) 値を格納する ( 代入 ) 復習 ) 条件分岐 代入の構文 変数の名前 = データ ; データは具体的な数値であったり式であったり 例 x = ; x 5 もし〇〇なら する ( 条件によって行動を変える ) if( 条件 ){ 条件がtrue( 正しい ) なら文を実行処理 例 : もしx 座標が右端 (360) より大ならば xに0を代入 if (x > 360) { 開き括弧と x = 0; 閉じ括弧の間に 条件が成り立つときの処理を書く 閉じ括弧までが一つのまとまり 6 復習 ) 繰り返し for 文 復習 )0 から 9 までの値を表示 for 文の書き方 0 1 2 3 4 5 6 7 8 9 と値を増やして表示する for( 初期化 ; 条件 ; 更新 ){ 処理 初期化 : ループ変数の初期化 条件 : ループを続けるかどうか 更新 : ループ変数の更新 7 初期化変数宣言と代入変数 i を作り 0 に for(int i = 0; i <= 9; i++){ 条件 i が 9 以下の間 (i< でもよい ) print(i+, ); 更新 i を 1 ずつ増やす (i=i+1 と同じ ) 0 から 9 まで 1 ずつ値を増やして繰り返し表示 8

並行移動 回転 translate(20,0); rect(0,0,,); rotate(radians(30)); rect(0,0,,); 20 20 30 度回転 20 移動 rect(0,0,,); で (0,0) の座標に四角形を描くが座標系の原点を 20 右に移動しているので (20,0) の座標に位置に描かれる rect(0,0,,); で (0,0) の座標に四角形を描くが座標系の原点を 30 度回転している 9 拡大 縮小 pushmatrix/popmatrix scale(2); rect(0,0,,); y y 20 x 20 移動 20 x rect(0,0,,); で幅 高さ の四角形を描くが座標系を 2 倍しているので幅 20 高さ 20 の四角形が描かれる 11 pushmatrix(); rotate(radians(30)); rect(0,0,,); popmatrix(); rect(0,0,5,5); pushmatrix で座標系を保存回転させても popmatrix で座標系を戻せる 20 30 度回転 20 元の座標系 12

データに対応した棒グラフ 20 20 30 x int d1 = 11; int d2 = 43; int d3 = 21; データ 配列を使ってデータをまとめる int d1 = 11; int d2 = 43; int d3 = 21; 型 [] 配列の名前 ={ データ 1, データ 2,...; 30 40 y rect(0,,d1,5); rect(0,20,d2,5); rect(0,30,d3,5); 13 1 つ目 2 つ目 3 つ目 int [] d={11, 43, 21; rect(0,, d[0], 5); rect(0, 20, d[1], 5); rect(0, 30, d[2], 5); 配列 d 11 43 21 d[0] d[1] d[2] もっとまとまらない? 14 for 文でもっと簡潔に 配列 rect(0,, d[ 0 ], 5); rect(0, 20, d[ 1 ], 5); rect(0, 30, d[ 2 ], 5); for(int i = 0; i < d.length; i++) { rect(0, ( i+1)*, d[ i ], 5); int [] d = {11,43,21; 配列の さ d.length ここでは 3 データの格納された配列を用意 ( 配列の宣言と初期化 ) 型 [] 配列の変数の名前 = { データ 1, データ 2, データ 3, ; 配列の個々のデータ ( 要素 ) へのアクセス 配列の変数の名前 [ 番号 ] 番号のことをインデックスまたは添え字と呼ぶ 先頭は 0 番目 配列の要素数は配列の変数の名前.length で取得できる 15 16

注意 今回も基本的に画面の変化のないプログラム setup draw の形ではない 座標変換 for 配列の理解に集中しよう 余裕がある人は setup draw の構造にして色や動きを派手に! 作業 1. 座標変換 1. 並行移動 2. 回転 3. 拡大 縮小 4. 座標の保存 復元 2. 配列 1. 配列の基礎 2. 配列を使用した描画 3. 二次元配列を利用した描画 17 18 size(360, 360); colormode(hsb, 359, 99, 99); nostroke(); 演習 1 並行移動 translate size(360,360); colormode(hsb,359,99,99); nostroke(); 演習 2 回転 rotate for (int i = 0; i< 360; i+=20) { fill(i, 99, 99); rect(0, 0,, ); translate(20, 0); rect の座標は (0,0) で変数を含んでいないところに注目 translate(180,180); for(int i = 0; i < 360; i+=20){ fill(i,99,99); rect(0,0,30,30); rotate(radians(20)); translate(20,0); 19 20

size(360,360); colormode(hsb,359,99,99); nostroke(); translate(180,180); for(int i = 0; i < 360; i+=20){ fill(i,99,99); rect(0,0,30,30); rotate(radians(20)); translate(20,0); scale(1.1); 演習 3 拡大 縮小 scale 21 size(360,360); colormode(hsb,359,99,99); nostroke(); for(int y = 0; y <= 360; y+=180){ for(int x = 0; x<= 360; x+=180){ pushmatrix(); translate(x,y); 繰り返しの最初で座標を保存しておくと いくら変更しても元の座標系に戻せる for(int i = 0; i< 360; i+=20){ fill(i,99,99); rect(0,0,30,30); rotate(radians(20)); translate(20,0); popmatrix(); 演習 4 座標の保存 復元 pushmatrix, popmatrix 22 int [] a = { 1, 7, 3, 2 ; println(a[0]); println(a[1]); println(a[2]); println(a[3]); 演習 5 名前 [ 番号 ] の要素の値を表示名前が a の配列の先頭 (0 番目 ) の値を表示 配列 型 [] 名前 = { データ 1, データ 2,, データ n; 整数を扱う名前が a の配列を作り データで初期化 for(int i = 0; i < a.length; i++){ println(a[i]); 演習 5 繰り返し (for 文 ) を使って表示を簡潔に 1 7 3 2 23 1 7 3 2 24

size(500,500); int [] data = {1,430,2,340; for(int i = 0; i< data.length; i++){ rect(0, (i+1)*0, data[i], 50); ループ変数 i を使って y 座標を毎回下にずらす 配列 data の要素の値の横幅 演習 6 配列を使ってデータに対応した大きさの複数の 方形を棒グラフ風に描く size(500,500); rectmode(center); int [] x = {0,200,400,300; int [] y = {300,0,400,200; for(int i = 0; i< x.length; i++){ pushmatrix(); translate(x[i],y[i]); rect(0, 0,, 0); popmatrix(); 演習 7 向き ( 回転 ) のデータ用の配列と回転と描画を追加 25 26 size(500,500); rectmode(center); int [] x = {0,200,400,300; int [] y = {300,0,400,200; int [] r = {30,-45,1,90; for(int i = 0; i< x.length; i++){ pushmatrix(); translate(x[i],y[i]); rect(0, 0,, 0); rorate(radians(r[i])); rect(0,0,,0); popmatrix(); 回転前の図形が不要な場合はここを削除 演習 8 2 次元配列を使ってデータに対応した複数の図形を描く 27 プログラムの提出 ( 演習点 ) 3,4,6,7,8 のどれかをベースにアレンジしてみよう! 他の人のプログラムをコピーするのは NG ですよ! 周りの人とは違う改良をしよう! K s Life のレポート機能から 締め切りは 6 日後の 23:59 それ以降も受け取るが減点する もっと改良したくてもこの時間に一度提出しよう ( 削除して提出しなおし可能 ) 評価は K s Life 上ではしない 28

提出する内容 以下をコメントとして入力 今回の内容の概要 ( どのような図形をどう並べたか ) 工夫した点 質問 ( 何かあれば ) 感想 ( 簡単だった 難しかったなど ) 入らない場合は 3 つ目の提出ファイルとして追加してもよい 提出ファイルとして以下の 2 つ プログラム (*.pde) 実行画像 (PNG または JPG) 提出ファイルの名称にはそれぞれ学籍番号を入力 29