!魔法陣スクリプト
まだ仕様が曖昧なので自分の中で整理するためにもまとめてみる。
!プリミティブ図形
!!円を書く
>> 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