LoginSignup
6

More than 5 years have passed since last update.

「プログラムでシダを描画する」をScratchで描画する

Posted at

こんにちは、@zukkunです。

「プログラムでシダを描画する」一覧 - Qiita

かれこれ2年ほど前にQiitaではシダ描画ブームが来たわけですが、ここでなぜかScratchでシダを描画することを思いついてしまったので、やらずにはいられません。

プログラムを作り、描画し始めてから10分近く経った様子です。

Scratch Project Editor - Imagine, Program, Share - Google Chrome 2017-03-15 15.17.26.png

描画完了まで時間がかかりそうなので、プログラムの解説をします。

プログラムは、透明な1x1サイズのスプライトに対して作成しました。

用意した変数

Scratch Project Editor - Imagine, Program, Share - Google Chrome 2017-03-15 15.34.39.png

用意した変数はxyretの3つです。

各定義

座標値計算用の定義ブロックです。

Scratch Project Editor - Imagine, Program, Share - Google Chrome 2017-03-15 15.21.12.png

Scratch Project Editor - Imagine, Program, Share - Google Chrome 2017-03-15 15.21.46.png

Scratch Project Editor - Imagine, Program, Share - Google Chrome 2017-03-15 15.22.14.png

Scratch Project Editor - Imagine, Program, Share - Google Chrome 2017-03-15 15.22.31.png

次に、点を描画するための定義ブロックです。

Scratch Project Editor - Imagine, Program, Share - Google Chrome 2017-03-15 15.22.45.png

点の描画は、Scratchのペン機能を用います。

次に、フラクタル構造を再帰で実現するための定義ブロックです。

Scratch Project Editor - Imagine, Program, Share - Google Chrome 2017-03-15 15.23.04.png

定義ブロックは、戻り値という概念が無いようでしたので、一旦retという変数に計算結果を入れ、あとでretの値を参照する、という方法を取りました。

メインプログラム

Scratch Project Editor - Imagine, Program, Share - Google Chrome 2017-03-15 15.27.04.png

プログラムスタートで、ペンの初期化を行って、定義したfブロックを呼ぶだけです。描画中にスクリーンショットを撮っているので、ブロックが光っています。

描画の様子

Scratch Project Editor - Imagine, Program, Share - Google Chrome 2017-03-15 15.30.38.png

ページ冒頭から、さらに10分近く経ちましたが、まだこの薄さです。

教育用プログラム環境でハードな処理はやるもんじゃないですね。

実行開始してから50分

50分経ちましたが、まだ描画してます。このくらいにしておきます。

Scratch Project Editor - Imagine, Program, Share - Google Chrome 2017-03-15 16.00.46.png

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6