河合塾 2019年4月27日 東京会場 親子でプログラミング体験!「ピクトグラムを動かそう!」開催のお知らせ  #ピクトグラミング #ピクトグラム #プログラミング

posted in: 開発者ブログ | 0

学校法人河合塾の主催で 2019年4月27日  親子でプログラミング体験!「ピクトグラムを動かそう!」が,3月の名古屋に続けて,東京で開催されます.時間は13:30から16:00までの2時間で,場所は河合塾 千駄ヶ谷CBTセンターです.対象は新小学5年生,新小学6年生とその保護者の方先着25組50名です.講師はピクトグラミング開発者の伊藤一成です.河合塾のスタッフの方々がサポートしてくれます.参加費は無料です.

こちらのURIから参加申し込みできます.奮ってご参加ください.

https://www.kawai-juku.ac.jp/event/list/school-c-knt/dtl0000010120

2019年度 河合塾Wingsの入塾金半額(5,000円)免除の参加特典もあります.

[ピクトグラミング] 日本語,日本語ひらがなモードでの体の部位のデフォルト表記をより親しみのある名称に変更しました.

posted in: 開発者ブログ | 0

先日の投稿で,体の部位の指定に

「肩」「かた」「肘」「ひじ」「股」「また」「膝」「ひざ」

を使用できるようにしたとアナウンスしましたが,

 

[ピクトグラミング] 肘神様という踊りがあることを知りました.とても興味深いです.そこで,体の部位の指定に「肩」「かた」「肘」「ひじ」「股」「また」「膝」「ひざ」を使えるようにしてみました.

これらの表記をデフォルトにしてみました.日本語入力モードあるいは,日本語ひらがな入力モードで体の部位をドラックしたり,命令入力支援ボタンを押下して命令を生成した場合に,これらの部位の名称が自動的に入力されます.

 

もちろんこれまでの,左上腕のように3文字の漢字の組み合わせで8(=2*2*2)通りの部位を表現する入力方式もサポートします.

 

しばらく様子を見て,使いにくいという声が多ければ,左上腕のように3文字の漢字の組み合わせで8(=2*2*2)通りの部位を表現する方式をデフォルトとする元の形式に戻します.

 

英語バージョンはこれまでと同様,LUAのように3文字のアルファベットの組み合わせで8(=2*2*2)通りの部位を表現する方式をデフォルトとします.

 

体の部位と表記の対応

英語 日本語 にほんご
BODY
Body
からだ
LUA
LeftUpperArmLS
左上腕

左肩

ひだりじょうわん

ひだりかた

LLA
LeftLowerArmLE
左前腕

左肘

ひだりぜんわん

ひだりひじ

RUA
RightUpperArmRS
右上腕

右肩

みぎじょうわん

みぎかた

RLA
RightLowerArmLE
右前腕

右肘

みぎぜんわん

みぎひじ

LUL
LeftUpperLegLC
左大腿

左股

ひだりだいたい

ひだりまた

LLL
LeftLowerLegLK
左下腿

左膝

ひだりかたい

ひだりひざ

RUL
RightUpperLegRC
右大腿

右股

みぎだいたい

みぎまた

RLL
RightLowerLegRK
右下腿

右膝

みぎかたい

みぎひざ

[ピクトグラミング] 案内用図記号のJIS改正を機に,線画で描いた様々なオブジェクトを簡単に塗りつぶせるようにしました.#ピクトグラム

posted in: 開発者ブログ | 0

これまで線画で描いた様々なオブジェクトを塗りつぶすためには,線を少しずつずらして重ね書きするしかありませんでした.

JISの案内用図記号に「洋風便器」「和風便器」「温水洗浄便座」が追加されたことを機に,

 

 

体の指定した部分の座標を含む閉じた線画の内部を全て塗りつぶすことができるように命令を拡張しました.
赤字で表記されている部分が追加された部分です.

 

命令の様式 処理
PEN arg1 [arg2] arg1 がUPの場合,ペンを上げる.DOWN の場合,ペンを下げる.arg1がUPまたはDOWNの時は,ペンの上げ下げをする体の部位の名称をR,RW命令と同様の表記でarg2に指定できる.arg1がFILLの時は,R,RW命令と同様の表記で指定されたarg2の体の部位の座標を含む閉じた線画の内部を塗りつぶすことができる.arg2が省略された場合は BODYが記述されているものとみなされる.
ペンの両端について,arg1がSQUAREの場合,線の両端の形状は四角,arg1がROUNDの場合線,両端の形状を丸を付加する.arg1がBUTTの場合は両端に形状を付加しない.ペンの種類について,arg1 が NORMALの場合は実線を,ERASEの場合は線を消す,XORの場合はすでに描かれていた部分は消し,そうでない部分は描く(反転).初期状態はペンが上がっている状態で,線の両端の形状は四角(SQUARE),ペンの種類はノーマル(NORMAL).

 

指定できる体の位置は以下の9箇所です

[日本語]

[English]

サンプルを示します.
線画を組み合わせて和式便器(の外枠)を描いてみました.

SC 0.1
MW -80 40

PEN DOWN
RT 270
REPEAT 90
FD 2
LT 1
MW 0 0.5
END
LT 90
FD 400
LT 90 
FD 30
REPEAT 90
FD 0.4
LT 1
END
FD 220
REPEAT 90
FD 0.7
RT 1
END
FD 63

これに対して,次の3行を最後に追加します.

PEN UP
MW -30 30
PEN FILL

1,2行目で描画ポイントである体の中心部分を線画で囲われた部分の内部に移動させています.1行目でPEN UPしておかないと描画ポイント自体に線が描かれてしまい,塗りつぶされないので注意してください.また線画で描かれた線画が閉じていないと,画面全体が塗りつぶされてしまうので注意してください.
3行目で,描画ポイントである体の中心部分を含む線画で囲われた領域を塗りつぶしています.

 

SC 0.1
MW -80 40

PEN DOWN
RT 270
REPEAT 90
FD 2
LT 1
MW 0 0.5
END
LT 90
FD 400
LT 90 
FD 30
REPEAT 90
FD 0.4
LT 1
END
FD 220
REPEAT 90
FD 0.7
RT 1
END
FD 63
PEN UP
MW -30 30
PEN FILL 

このプログラムを実行すると,次のように塗りつぶされます.

 

ピクトグラミングの特徴は,人型ピクトグラムと図形描画によって作成されたオブジェクトを組み合わせられることでしたので,以下のような画像も作成できます.和式トイレの使い方を知らない人には以下のようなピクトグラムの方が親切なのかもしれません.

 

体の中心部分以外で描いたり,塗りつぶしの基準点を体の中心部分以外にすることもできます.これは左前腕(LLA)で描いた四角形を,四角形の内部に位置する左上腕(LUA)を基準に塗りつぶした例です.

SK
RW LUA 45
PEN DOWN LLA
REPEAT 4
RW LUA 90
END
PEN UP LLA
PEN FILL LUA

河合塾主催 2019年3月17日 千種校 親子でプログラミング体験!「ピクトグラムを動かそう!」開催のお知らせ (2月20日申込み開始) #ピクトグラミング #ピクトグラム #プログラミング

学校法人河合塾の主催で 2019年3月17日  親子でプログラミング体験!「ピクトグラムを動かそう!」が名古屋で開催されます.時間は11:00から13:00までの2時間で,場所は河合塾千種校(千種駅からすぐ)です.対象は新小学5年生,新小学6年生とその保護者の方先着25組50名です.講師はピクトグラミング開発者の伊藤一成です.河合塾のスタッフの方々がサポートしてくれます.参加費は無料です.

こちらのURIから2019年2月20日より参加申し込みできます.奮ってご参加ください.

https://www.kawai-juku.ac.jp/event/list/all-grades-tki/dtl0000009951

2019年度春季講習入会金全額免除,2019年度小学グリーンコース入塾金半額免除の参加特典もあります.今後他の都市でも開催予定です.

 

 

[ピクトグラミング] BPM(Beats Per Minute)命令を追加しました.

posted in: 開発者ブログ | 0

ピクトグラミングにBPM(Beats Per Minute)命令を追加しました.

 

命令の様式 処理
BPM arg1
BPM(Beats Per Minute)をarg1にセットする.初期値は60.

これにより,これまでR,RW,M,MWをはじめとした秒数に当たる引数を拍数とみなすこともできるようになりました.以下に例を示します.

RW LUA 90 1
BPM 120
RW LUA 90 1
BPM 30
RW LUA 90 1

同じRW LUA 90 1の命令でもテンポが異なるために動作速度が変わります.
命令名は英語ではBPMですが,テンポてんぽはくでもOKです.

回転待ち 左肩 90 1
テンポ 120
回転待ち 左肩 90 1
拍 30
回転待ち 左肩 90 1

 

リズム学習やリズム表現活動へのピクトグラミングの活用も進めていきます.

Lesson 7 人型ピクトグラム,アーティストになる

posted in: 開発者ブログ | 0

今回はこれまで学んだ内容を踏まえ自由に作品を作ってみましょう。 Lesson2 以降で使った人型ピクトグラムの体自身をその場で動かす命令である「ピクトアニメーション命令」と Lesson6 で使った人型ピクトグラムの動きの履歴で線画を描く「ピクトグラフィックス命令」がありました。この両者をうまく組み合わせると色々な作品を作ることができます.

Lesson 5 意思決定する人型ピクトグラム

posted in: 開発者ブログ | 0

意思決定する人型ピクトグラム

条件式を書いてみよう

条件式とは、式の中でも条件を表す式のことを言います。例えば「もし変数の値KAKUDOが50より大きかったら実行する」というような表現を命令で表します。そのためには、IF命令を使います。

IF命令の様式と処理は以下の通りです.END命令とセットで用います.

命令の様式 処理
IF exp1 もし 条件式exp1が真ならば対応するENDまでの命令を実行する.
END 条件文,または繰返し,または定義の終了.

 

比較演算子

IF命令の引数には比較演算子を使った式を記述します。比較演算子には以下のものがあります。

比較演算子の様式 評価
A > B
A が B より大きい
A >= B A が B より大きいか等しい
A < B
A が B より小さい
A <= B A が B より小さいか等しい
A == B
A が B が等しい
A != B A と B が等しくない

 

例として,以下のコードを実行すると左手を挙げた後、1/2 の確率で手を振ります。

RW LUA -140 1 // 左手を挙げる
IF [RAND(1, 6) >= 4] // もし 1~6 までの乱数が 4 以上なら
// 左手を振る
RW LLA -60 0.3
RW LLA 60 0.3
END

 

条件式を書いてみよう (続き)

IF命令は,複数の条件を列挙したり,条件を満たさないときの処理を同時に記述できます.新たに
ELSEIF命令,ELSE命令を紹介します.

命令の様式 処理
IF exp1 もし 条件式exp1が真ならば対応するENDまでの命令を実行する.
ELSEIF exp2
もし対応する先述のIFまたはELSEIFの条件が全て満たされなくて,かつ条件式 exp2が真ならば対応するELSEIFまたはELSEまたはENDの直前までの命令を実行する.
ELSE
もし対応する先述のIFまたはELSEIFの条件が全て満たされない場合,対応するENDまでの命令を実行する.
END 条件文,または繰返し,または定義の終了.

 

例として,人型ピクトグラムが16 拍子の踊りをするプログラムを示します。何拍目かによって動きの変わります。

SET :HAKU 0
REPEAT 16
IF [:HAKU % 8 == 3] // HAKU を 8 で割った余りが 3 なら
RW LUL 90 0.2 // 左脚を上げ下げする
RW LUL -90 0.2
ELSEIF [:HAKU % 2 == 0] // その他の場合で HAKU が偶数なら
RW RUA 90 0.2 // 右腕を上げ下げする
RW RUA -90 0.2
ELSE // その他の場合は
RW LUA 90 0.2 // 左腕を上げ下げする
RW LUA -90 0.2
END
SET :HAKU [:HAKU+1]
END

プログラムの最後の行で HAKU が 1 増えます。 REPEAT 命令で、もう一度 一番上の行から実行されます。そのときには HAKU が変わっています。 ですから 実行される箇所が変わります。

算術式を書いてみよう

式とは、値、変数、演算子の組み合わせのことを言います。値と変数はこれまでに出てきました。例えば、

SET :DX 1

は変数 DX に値 1 を格納するという意味でした。演算子とは演算を表す記号のことをいいます。 例えば下にあるような+-*/% などです。特に計算のために用いる演算子なので算術演算子と呼ばれています。

算術演算子の様式 評価
A + B
A と Bをたす
A – B A から B をひく
A * B
A と B をかける
A / B A を B で割る
A % B
A をBで割ったあまり

 

繰り返しますが、式とは、値、変数、演算子の組み合わせです。 式の例を示します。

:DY + 0.05

 

引数に式を使うとき

[ ] という記号が出てきました。先に関数のところで使いましたが、[ から ] までの間が一つの引数であるという意味です。 引数の区切りは空白でしたが、式を書くと式の中に空白が入ることがあり、どこからどこまでが一つの引数かわからなくなるからです。よってピクトグラミングでは、式を表現するのに [ ] で囲っています。

命令の引数には式を記述することができます DX + 0.05DY に代入するというのは、

 

SET :DY [:DY + 0.05]

 

左上腕に対して KAKUDO の2倍の角度を(KAISU+1)の2倍の秒かけて回転するというのは、

 

R LUA [:KAKUDO * 2] [ (:KAISU + 1) * 2]

 

と書けます。

これまでに学んだ、変数、繰返しを使い, 条件式と関数を引数に使うことで,人型ピクトグラムが左右にジャンプを繰り返すプログラムを示してみます。

 

SC 0.3
SET :DX 1
SET :DY 0
REPEAT 1000
MW :DX :DY 0.02
SET :DY [:DY + 0.05]
IF [Y() > 200]
SET :DY [-1 * :DY]
END
IF [ABS(X()) > 300]
SET :DX [-1 * :DX]
END
END

 

挑戦状

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

 

チャレンジ1 腕を上げ下げさせよう

次の (a) から (c) の条件を満たすプログラムを作成してみよう。
(a) 5 分の 4 の確率で 1 秒かけて左腕を 120 度時計回りに回転する。
(b) 7 分の 3 の確率で 1 秒かけて右腕を 120 度反時計回りに回転する。
(c) (a) の動作と (b) の動作は同時に行われる。 左腕を上げる行為と、右腕を上げる行為はそれぞれ別々に判断される。

 

チャレンジ2 ダンサー

30 拍からなるダンスをします。1 拍は 0.6 秒とします。最初は 1 拍目、最後は 30 拍目です。
(1) 3 の倍数でもあり、5 の倍数であるとき、つまり 15 の倍数の時は、最初の 0.3 秒で左腕を -120 度、 右腕を 120 度それぞれ同時に回転し、その後 0.3 秒で左腕を 120 度、右腕を -120 度それぞれ同時に 回転します。
(2) 15 の倍数ではなく、3 の倍数の拍目の時は、最初の 0.3 秒で左腕を -120 度回転し、 その後 0.3 秒で左腕を 120 度回転します。
(3) 15 の倍数ではなく、5 の倍数の拍目の時は、最初の 0.3 秒で右腕を 120 度回転し、 その後 0.3 秒で右腕を 120 度回転します。
(4) 3 の倍数でもなく、かつ 5 の倍数でもないときは、最初の 0.3 秒で左足を -10 度回転し、 その後 0.3 秒で左足を 10 度回転します。

チャレンジ3 ダンサー

条件分岐(IF)を使ったオリジナル作品を作ってみよう。

 

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

Lesson 8 人型ピクトグラム,デザイナーになる

posted in: 開発者ブログ | 0

世の中に見られるピクトグラムを実際に作ってみましょう.

人型ピクトグラムは社会の一員として、社会のために貢献するときが来ました。

世界のデザイン、人型ピクトグラム。

 

すでに世の中にあるピクトグラムを見てみよう

下のピクトグラムは、いずれも安全図記号で指定されている図例です。

禁止、注意、指示、安全の4項目に関する ピクトグラムデザインの ガイドラインも 策定されています。世の中に広く普及しているピクトグラムは、作成ガイドラインにのっとって デザインされています。ピクトグラムで大切な事は誰にでも正しく伝わるという事なのです。

進化するピクトグラム

さて、世の中に溢れるピクトグラムはポスターなど紙媒体上で提示されているので基本は画像(静止画)です。一方最近では、デジタルサイネージ(電子掲示板)の発達により、街中でもアニメーションのピクトグラムを提示させることができるように技術的にはなっています。またスマートフォンなどは位置情報や無線によって、状況に応じて画面上に何らかの表示をすることができるようになっているので、静止画や動画のピクトグラムを表示させて、注意喚起や情報提供をすることができるでしょう。

ピクトグラミングは,静止画だけではなく動画(アニメーション)のピクトグラムを作成することができます。ぜひ、単なる静止画のピクトグラムではなく、オリジナルのアニメーションピクトグラムを作成してみましょう。

 

ピクトグラミングで作ろう!!

ピクトグラミングでは通常のモードに加え、禁止、注意、指示、安全用のピクトグラムを作るための4つのモードを備えています。

命令の様式 処理
S 安全モード(Safety mode)以外で実行すると安全モードに変更する。 安全モードで再度命令すると通常モードに変更する。安全モード中に描画 した線画の色は人型ピクトグラムと同じ緑色となる。
P 禁止モード (Prohibit mode) 以外で実行すると禁止モードに変更する。 禁止モードで再度命令すると通常モードに変更する。
I 指示モード(Instruction mode)以外で実行すると指示モードに変更 する。指示モードで再度命令すると通常モードに変更する。指示モード中 に描画した線画の色は人型ピクトグラムと同じ白色となる。
A 注意モード(Attention mode)以外で実行すると注意モードに変更する。注意モードで再度命令すると通常モードに変更する。

作品例

ピクトグラミングで作成したピクトグラムの例です.ピクトグラムをクリックするとプログラム作例の紹介ページへ遷移します.

        

世界中のみんなが頼る人型ピクトグラム

人型ピクトグラムをどのようにデザインするかは、世界的な基準があります 。よってその基準に沿ってピクトグラム作ることが重要です。ピクトグラミングは、世界的な基準に沿ったピクトグラムをみなさんが作るサポートをします。オリジナル人型ピクトグラムを作って、いろいろなところで活用することも良いかもしれないですね。

 

 

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

Lesson 6 人型ピクトグラム画家になる

posted in: 開発者ブログ | 0

ピクトグラミングでは2通りの方法で線画を描くことができます.いずれの場合もPEN命令を使います.まずは,体の部位を使って描く方法です.

 

体の部位を使って描く

PEN命令の様式と処理は以下の通りです.また描画する線の太さを変えるPENW命令もあります.

命令の様式 処理
PEN arg1 [arg2] arg1 がHOLDまたは,UPの場合,ペンを上げる.RELEASEまたは,DOWN の場合,ペンを下げる.arg1がHOLDまたはRELEASEまたはUPまたはDOWNの時に限り,ペンの上げ下げをする体の部位の名称をR,RW命令と同様の表記でarg2に指定できる.arg2が省略された場合は BODYが記述されているものと見なされる.ペンの両端について,arg1がSQUAREの場合,線の両端の形状は四角,arg1がROUNDの場合線,両端の形状を丸を付加する.arg1がBUTTの場合は両端に形状を付加しない.ペンの種類について,arg1 が NORMALの場合は実線を,ERASEの場合は線を消す,XORの場合はすでに描かれていた部分は消し,そうでない部分は描く(反転).

初期状態はペンが上がっている状態で,線の両端の形状は四角(SQUARE),ペンの種類はノーマル(NORMAL).

PENW arg1 ペンの太さ(幅)を arg1 にする.初期状態は1.

 

ペンを持つことができる体の位置は以下の9箇所です

サンプルを示します.

SK
PEN HOLD LLA
REPEAT 4
RW LUA 90
END

で左手を使って四角形を描くことができます.

ちなみに1行目のSK命令は,人型ピクトグラムの体を透明にする命令です.描画の様子がわかりやすくなります.

命令の様式 処理
SK スケルトンモード(Skelton mode)以外で実行するとスケルトンモードに変更する。スケルトンモードで再度命令すると通常モードに変更する。

 

例えば,

SK
PEN HOLD LLA
R LUA 360 1

で左手を使って円を描くことができます.

その他様々な工夫で色々な図形が描画できます.

これまで,R arg1 arg2 0  と RW arg1 arg2 0 は同じ命令でした.M arg1 arg2 0MW arg1 arg2 0 も同じです.しかし,R arg1 arg2RW arg1 arg2M arg1 arg2MW arg1 arg2 は,描画を伴う場合に以下のように異なる挙動となります.

時間0のR命令,M命令は,元の位置と,R命令,M命令からなる複数の命令の動きを全て実行したあとの位置を両端とする線分を描画します.

時間0のRW命令,MW命令は,元の位置とその命令を実行したあとの位置を両端とする線分を描画します.

 

この違いを例に示します.

SK
PENW 10
PEN HOLD LLA
RW LUA 45
RW LUA 45

は下のようになります.左腕の初期位置から,左上腕を反時計回りに45度回転した位置まで線分を描きます.さらに左上腕を反時計回りに45度回転した位置まで別の線分を描きます.

SK
PENW 10
PEN HOLD LLA
R LUA 45
R LUA 45

は下のようになります.左腕の初期位置から,左上腕を反時計回りに90(=45+45)度回転した位置まで線分を描きます.

よって

SK
PENW 10
PEN HOLD LLA
REPEAT 8
RW LUA 45
END

は下のような正8角形を描きますが.

SK
PENW 10
PEN HOLD LLA
REPEAT 8
R LUA 45
END

は何も描きません.なぜなら左腕の初期位置と,初期位置から左上腕を反時計回りに360(=45*8)度回転した位置は同じだからです.

同様に,

SK
PENW 3
PEN HOLD LLA
M 100 0
M 0 100

は下のようになりますが,

 

SK
PENW 3
PEN DOWN LLA
MW 100 0
MW 0 100

は下のようになります.

 

 

歩いて描く

もう一つの方法は歩いて描く方法です.人型ピクトグラムの体の部位を動かすのではなく、人型ピクトグラム自体を動かしましょう。みなさんもその場で体を動かすこともあれば、歩行して移動することもありますよね。歩行の履歴を使って色々な図形を描いてみましょう。

では早速、人型ピクトグラムを歩行させてみましょう。人型ピクトグラムが少し大きすぎるので、人型ピクトグラムの大きさを変えてみましょう。

 

SC 0.1
PEN HOLD

 

1行目の命令、これは人型ピクトグラムの大きさを 0.1 倍にするという意味です。

 

命令の様式 処理
SC arg1 人型ピクトグラムの拡大率をarg1にする.(初期状態は1)

 

動かすのに使う命令は以下の4つです。

命令の様式 処理
FD arg1 人型ピクトグラムを進行方向に距離 arg1 だけ進める.
BK arg1 人型ピクトグラムを進行方向と逆向きに距離 arg1 だけ進める.
RT arg1 人型ピクトグラムの進行方向を時計回り方向に角度 arg1 だけ回転する.
LT arg1 人型ピクトグラムの進行方向を反時計回り方向に角度 arg1 だけ回転する.

 

ちなみに最初の進行方向は上向きになっています。

SC 0.1
PEN HOLD
FD 100

SC 0.1
PEN HOLD
FD 100
RT 90
FD 100

というふうに描けます.

ではこの調子で続けて正方形を書いてみてください.

さらに右に曲がる角度と繰り返す回数を色々変えると様々な形を描くことができます。

 

 

ちなみにこれまでに描いた図形を消す場合は、CS(Clear Screen)命令を使います。

命令の様式 処理
CS ペンによって描画された図形を消去する.

 

ピクトグラミングは視点の異なる2通りの方法で様々な図形を描けるのが特徴です.描画したい図形の性質に応じて適切な方法を使ってみてください.

 

 

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.