僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。
Scratch 1.4は定義ブロックがないらしい。また2.0
(Adobe Air必須)で作成したプロジェクトも読めない。
Squeakに引き返す。
亀のプログラムに引数を加えてみた。
| bic | turtos := [:ang :col :row | bic := Pen new. bic up; goto: col@row. bic down. 1 to: 50 do: [: i| bic go: i*4. bic turn: ang ]]. turtos value: 119 value: 200 value: 300.
で、左上から右に200, 下に300の位置を中心に、 ずれた三角形が。
Squeakで描けた。
原点Oが中央になく左上だったことも、手間取った理由の一つだったり。
ycal := [:x :r :b | ((r * r) - (x * x)) sqrt + b ]. nycal := [:x :r :b | ((r * r) - (x * x)) sqrt negated + b ]. dcircle := [:a :b :r | circle := Pen new. circle up. r negated to: r do: [: x | y := ycal value: x value: r value: b. circle goto: x+a@y; down ]. circle up. r negated to: r do: [: x | y := nycal value: x value: r value: b. circle goto: x+a@y;down ] .]
同心円を書きながらTranscriptに半径を書き出してみたり。
1 to: 300 by: 25 do: [: x | dcircle value: 420 value: 270 value: x Transcript show: x printString; cr ].
Raspbianでは、一瞬では書けなかった。
とりあえず控えだけ。
uhalf := [:a :b : r | upperhalf := Pen new. upperhalf up. r negated to: r do: [: x | y := nycal value: x value: r value: b. upperhalf goto: x+a@y; down ] ] lhalf := [:a :b : r | lowerhalf := Pen new. lowerhalf up. r negated to: r do: [: x | y := ycal value: x value: r value: b. lowerhalf goto: x+a@y; down ] ] uhalf value:200 value:250 value:20. lhalf value: 190 value: 250 value: 30. uhalf value:200 value:250 value:40. lhalf value: 190 value: 250 value: 50. uhalf value:200 value:250 value:60. lhalf value: 190 value: 250 value: 70.
元のブロックは一箇所しか違いのない2つのブロック。
なんかおかしいが、まだ。
リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。