「Blockly デベロッパー ツール | Google Developers」を使ってフラクタルを記述する「フラクタル(Blockly)」では、JavaScriptで記述できるものと同様のものをBlocklyで書いて「変換リスト」を作成するようになっています。(バージョン1)
これを改造して、バージョン2では「変換リスト」を直接書くためのBlocklyの要素を追加します。
複素数 、
、
に対して
とおくと
が成り立ちます。よって
となり複素平面上で 、
、
を頂点とする三角形と
、
、
を頂点とする三角形は相似となります。
と
を両端とする線分を
と書くことにします。線分
による線分
の変換を
とおきます。変換の集合 による線分の集合
の変換
を
とおきます。この変換を 回繰り返したものを
とします。
バージョン1
バージョン1では変換リストは点のリスト(分点リスト)または線のリスト(線分リスト)となります。「線分リスト」チェックボックスをチェックすると線分リストとなります。
変換リスト(分点リスト)
点をx座標 とy座標
からなるリスト
で表します。点のリスト
は、変換の集合
を表すものとします。「繰り返しの回数」が
のとき(通常は)
を表示します。「すべての線を表示」のときは
を表示します。
変換リスト(線分リスト)
線分を始点 と終点
からなるリスト
で表します。線分のリスト
は、変換の集合
を表すものとします。「繰り返しの回数」が
のとき(通常は)
を表示します。「すべての線を表示」のときは
を表示します。
バージョン2
バージョン2では、変換リストは
というリストです。 はバージョン情報です(バージョン2では2)。
の各
はバージョン1の変換リスト(点のリストまたは線分のリスト)を拡張したものです。バージョン2ではこれを複数指定することができます。
点のリストを拡張したものは
というリストで、各 は
または
または
または
というリスト(拡張された点の情報)です。各 は点を表します(バージョン1の点と同じもの)。
線分のリストを拡張したものは
というリストで、各 は
または
または
または
というリスト(拡張された線分の情報)です。各 は線分を表します(バージョン1の線分と同じもの)。
各 は以下の情報を表します。
|
表示と継承情報 |
|
次の変換の番号 |
|
色の変更情報 |
|
色を変更するときの色情報(R) |
|
色を変更するときの色情報(G) |
|
色を変更するときの色情報(B) |
表示と継承情報
表示と継承情報は以下のようになります。
0 | 最後だけ表示 | この線分は表示されないが、次の変換の元として使われ、最後に変換されたものだけが表示される |
1 | すべて表示 | この線分は表示され、かつ次の変換の元としても使われる |
2 | 表示しない | この線分は表示されず、次の変換でも使われない |
3 | 表示する | この線分は表示されるが、次の変換では使われない |
省略すると「最後だけ表示」となります。
次の変換の番号
次の変換の番号は上記の の各
の
を表しますが、インデックスは
から始まります(つまり
となります)。省略すると
となります。
色の変更情報
色の変更情報は以下のようになります。
0 | 変更しない | 変数 |
1 | 変更する | |
2 | 増加 | その時点の色のRGB成分を |
3 | 減少 | その時点の色のRGB成分を |
省略すると「変更しない」となります。
変換の拡張
線分の情報を拡張して
というリスト(線分表示情報)を考えます。線分表示情報の内容は以下のようになります。
|
線分 |
|
表示と継承情報 |
|
次の変換の番号 |
|
色情報(R) |
|
色情報(G) |
|
色情報(B) |
この線分表示情報を とおきます。
線分表示情報 の拡張された線分の情報
による変換
を考えます。
とします。
は以下のようになります。
|
|
最後だけ表示またはすべて表示 | |
表示しないまたは表示する | 表示しない |
、
、
は
に従って以下のようになります。
|
|
|
|
変更しない | |
|
|
変更する | |
|
|
増加 | |
|
|
減少 | |
|
|
線分表示情報の集合 に対して
とおきます。
変換リスト の各
に対応する拡張された線分による変換の集合を
とするとき
による変換
を
と定義します。
この変換を 回繰り返したものを
とします。
変換リスト の各
を部分リストと呼ぶことにします。部分リストが拡張された線分のリストのとき
を表示します。
部分リストが拡張された点のリストの場合は以下のようになります。
部分リストが拡張された点のリストの場合
拡張された点のリスト
で、各 は
であるものを考えます(省略可能なものは省略できるとします)。
これに対応する拡張された線分のリストを
とし、各 は
であるとします。
(
)
は「最後だけ表示」
は「変更しない」
とします。この拡張された線分のリストに対して
を表示します。
「すべての線を表示」がチェックされたとき
バージョン2では必要はないのですが、「すべての線を表示」がチェックされたときは
を表示することにします。