Lesson 4 考える人型ピクトグラム

posted in: 開発者ブログ | 0

人型ピクトグラムに考えてもらおう。

 

これまでは、あなたが人型ピクトグラムに命令をしてきました。しかし、人型ピクトグラムも考えることができます。今回は人型ピクトグラムに考えさせるための方法を知りましょう。まずはそのための準備!人型ピクトグラムの位置を知りましょう。

 

ピクトグラミングの座標

中心が(0,0)でこれは人型ピクトグラムの初期位置です。

右上が( 320, -320)、

左上が(-320, -320)、

左下が(-320, 320)、

右下が( 320, 320)、

つまり

x軸正方向が右、

y軸正方向が下となります。

 

 

 

人型ピクトグラムはM命令またはMW命令を用いて体全体を平行移動することができます。

命令の様式 処理
M arg1 arg2 arg3 arg4 arg4秒後にarg3秒かけてx軸正方向に arg1ピクセル, y軸正方向にarg2ピクセルだけ全体を等速直線移動する.arg4が省略された時は,arg4に0が,arg3, arg4の両方が省略された時はいずれも0が入力されているものとして取り扱う.
MW arg1 arg2 arg3 arg3 秒かけてx軸正方向に arg1 ピクセル, y軸正方向にarg2 ピクセルだけ全体を等速直線移動する.直線移動が終了するまで次の命令は実行されない.arg3が省略された時は,arg3に0が入力されているものとして取り扱う.

 

人型ピクトグラムの画面上に、座標系を表示させることができます。

右上にある「座標系の表示」アイコンの右のチェックボックスをクリックすると有効になります。

例:人型ピクトグラムの位置を動かす

M命令の使用例です。

M -240 0

M 480 0 1

 

 

 

 

 

 

人型ピクトグラムに考えさせる方法

人型ピクトグラムは考える事ができます。ここでは人型ピクトグラムに考えさせる方法があります。その書き方を学びます。まずは、ランダムな数字を考えてもらう方法です。

 

ランダムな数を思い浮かばせる

人型ピクトグラムに命令するときに、今までは引数に数値を入力していました。その数値を人型ピクトグラムに考えてもらいます。それには関数を使います。関数の説明は、少し後にしますので、まずは具体的な例を見てみましょう。

 

関数の表記 機能 戻り値

RAND( min , max )

整数 min 以上
整数 max 以下のランダムな値を返す。

整数 min 以上
整数 max 以下のランダムな値。

 

ここではランダムな値を取得できる関数を使ってみます。

関数を使うときはその両側を[ ]で閉じます。

 

例:脚を回す人型ピクトグラム (関数の使い方)

 

REPEAT 50
RW LUL [RAND(-90, 90)] 0.2
END

「関数」は、与えられた文字や数字の組(引数の組)に対して定められた処理を行って結果(戻り値)を返す機能のことを言います。例えば「-90(度)以上90(度)以下の角度の1つ決めてください」という処理に対して「37」を結果として返すということです。対して、これまで学んできた「命令」は戻り値はありません。これが命令と関数の違いです。ピクトグラミングではいくつかの関数が定義されています。書き方も命令と少し異なります。ここではランダムな値を取得できる関数を使ってみます。

 

引数に関数を使って人型ピクトグラムを動かす

人型ピクトグラムに乱数を使って命令します。

 

例:ぶるぶる震えるピクさん (関数の使い方:引数に関数)

SC 0.3
REPEAT 1000
MW [RAND(-10,10)] [RAND(-10,10)] 0.02
END

 

例:ロボットダンス(関数の使い方:引数に関数)

REPEAT 50
R LUA [RAND(-90, 90)] 0.2 // 左腕を動かす
RW RUA [RAND(-90, 90)] 0.2
END

 

 

 

使用できる関数一覧

 

関数の表記 機能 戻り値

RAND( min , max )

整数 min 以上
整数 max 以下のランダムな値を返す。

整数 min 以上
整数 max 以下のランダムな値。

ANGLE(parts)

体の部位を示す文字列 の向きを右向 き(X 軸正方向)を 0 度として反時計 回りの角度を返す。また値は、0 から 359 の整数値をとる。体の部位を示す 文字列は二重引用符 (“) で囲うこと。 例えば左上腕の角度を知りたいときは

「ANGLE(“LUA”)」となる。

体の部位を示す文字列 parts の向 き (0 から 359 の整数値をとる )。

X()

ピクさんの x 座標を整数値で返す。

ピクさんの x 座標

Y()

ピクさんの y 座標を整数値で返す。

ピクさんの y 座標

COS( theta )

theta 度の余弦を返す

theta 度の余弦

SIN( theta )

theta 度の正弦を返す

theta 度の正弦

TAN( theta )

theta 度の正接を返す

theta 度の正接

ABS( val )

val の絶対値を返す

valの絶対値

 

関数の中には、ANGLE()X()Y()といった

人型ピクトグラムの状態を知ることができるものもあります。

このような関数を使用することで、

複雑な動きを人型ピクトグラムにさせることができます。

 

例:ぶらんぶらんダンス (関数を使った例)

R LUA -90
R RUA 60
SET :DL 0
SET :DR 0
REPEAT 5000
SET :DL [:DL - COS(ANGLE("LUA"))]
SET :DR [:DR - COS(ANGLE("RUA"))]
RW LUA :DL 0.02
RW RUA :DR 0.02
END

 

挑戦状

4回目の挑戦状です。挑戦状は、あなたがやりたいと思うところからやってください。チャレンジ1から順に取り組む必要はありません。また、全てのチャレンジに取り組む必要もありません。あなたがやりたいチャレンジに取り組んでください。

 

チャレンジ1 パタパタさせよう

 

次のプログラムを作ってみましょう。

 

(1) 次に示す(2)を50回繰り返してください。

(2) 0.1秒かけて-90度から+90度のいずれかの角度,左腕と右腕を同時に(その同じ角度だけ)動かしてください。ただし(2)でうごかす-90度から+90度のいずれかの角度は50回の繰返しで毎回ランダムで選ばれるようにしてください。

 

チャレンジ2 宇宙遊泳

次のプログラムを作ってみましょう。

 

(1) はじめに原点以外のどこかに人型ピクトグラムを移動させましょう。

(2) 次に書かれている(3).を 1000回繰り返します。

(3) 人型ピクトグラムが座標(X , Y) にいるときに0.02 秒かけて

X軸方向に ( -0.05 × Y ) , Y軸方向に (0.05 × X) だけ移動(MW命令を使う)させましょう。

 

チャレンジ3     オリジナルピクトグラムをつくろう

自由に作品を作ってみてください。

ただし関数を使うこと。

 

本テキストの著作権は青山学院大学 社会情報学部 伊藤一成に帰属します。
© 青山学院大学 社会情報学部 伊藤一成研究室 All rights reserved.

 

 

 

 

 

 

Comments are closed.