!魔法陣スクリプト
まだ仕様が曖昧なので自分の中で整理するためにもまとめてみる。

!プリミティブ図形
!!円を書く
>> mce3
circle(1)
<<
>>
circle(1)
<<
これで円を書くことができます。1は大きさです。

1という大きさは相対的なものです。キャンバスは何も指示しないと2の大きさになっています。
つまり1だとその半分の大きさの円が描画されます。

!!四角形を書く
お察しのとおり四角形もあります
>> mce3
rect(1)
<<
>>
rect(1)
<<
領域は四角のほうが分かりやすいかな?
とりあえず基本的な図形はこの2つです。

!複数の図形
>> mce3
circle(1)
circle(0.5)
rect(1)
rect(1.5)
<<
>>
circle(1)
circle(0.5)
rect(1)
rect(1.5)
<<
こんなふうに並べて書くと図形が並びます。
!座標変換
回転、拡縮、移動をサポートしています
それぞれ
-rotate
-scale
-shift
です
!!回転
>> mce3
rotate(1/8)
 rect(1)
<<
>>
rotate(1/8)
 rect(1)
<<
回転をかけてみました。1で1周です。なので1/8周するとこんな感じ。rectに付いてるインデントがキモです。

!!回転2
rotateの支配下にrectがあるようなイメージです。
>> mce3
rotate(1/8)
 rect(1)
 rect(0.5)
rect(0.5)
<<
>>
rotate(1/8)
 rect(1)    //rotateのなか
 rect(0.5)  //rotateのなか
rect(0.5)   //rotateの外
<<

コメントに書いたようにインデントでrotateの影響範囲が変わります。

!!拡縮
>> mce3
scale(0.1)
 circle(1)
<<
>>
scale(0.1)
 circle(1)
<<
こんなふうに支配下の図形を縮小/拡大できます。まだcircleとrectだけなので意味なさそうですが、後々役に立ちます。

!!移動
>> mce3
shift(0.5,0.5)
 circle(1)
shift(-0.5,-0.5)
 circle(1)
<<
>>
shift(0.5,0.5)
 circle(1)
shift(-0.5,-0.5)
 circle(1)
<<
shiftの支配下の図形を移動します。

!!組み合わせ
それぞれの移動は組み合わせることができます。
>> mce3
shift(0.5,0.5)
 rotate(1/8)
  rect(1)  // 移動して回転
shift(-0.5,-0.5)
 scale(0.1)
  circle(1) // 移動して縮小
<<
>>
shift(0.5,0.5)
 rotate(1/8)
  rect(1)  // 移動して回転
shift(-0.5,-0.5)
 scale(0.1)
  circle(1) // 移動して縮小
<<
まぁこの動きは直感的だと思います。
配下の関数をどうのこうのする という関数は今後もいくつか出てきますが、大抵のものはこのように入れ子にすることができます。
5643382
wiki
1371359047