ひまわりでお絵かき

ひまわりを駆使して2Dグラフィックスを楽しもう!

【難易度】☆☆


お絵かき?

 ひまわりを使うと、不思議な模様を簡単に描画することができます。過去にも、不思議な模様を描くプログラムが、掲示板にたくさん投稿されています。ひまわりはけっして描画速度が速いとはいえませんが、それでも、簡単な図形を描くには十分です。

お絵かきに必要な命令

 お絵かきに必要なのは、線や四角などを描く命令です。ひまわりで線や丸や四角を描くのは簡単です。
 ひまわりの、一番初めに表示されるフォームのことを、『母艦』と呼んでいます。母艦に線や四角を描く命令をまとめたのが下の表です。
命令 引数 説明
移動 ?へ 表示位置移動
表示 ?と 文字表示
画面クリア ?で 指定色で画面クリア。引数省略すると白色でクリアする
?から,?へ 基本点(x1,y1)から、(x2,y2)へ線を引く
四角形 ?から,?へ 四角形を描く
円形 ?から,?へ 円を描く
画像表示 ?を ファイルから画像を読込んで表示
画像拡大表示 ?を,?で ファイルから画像を読込んで、(幅,高さ)に、拡大表示する
これらの命令を組み合わせて絵を描くわけですが、幾何学的な模様を描くには、繰り返しが基本です。
’線をひく
ペン太さ=8
ペン色=赤色
10回(
  Y = 回数 * 30
  (0,Y)から、(640,Y)へ、
)
 先頭にある「ペン太さ」「ペン色」を指定することで、どんな風に描画するかスタイルを選択できます。n回命令で、10回繰り返すわけですが、繰り返す範囲の( )の中で、回数というのは、繰り返し回数を得ることができます。ですから、上のプログラムでは、回数×30で、30ドットおきに線を描いているのです。
 次に、繰り返しを2つ重ねてもうちょっと複雑な模様を描いてみます。
’幾何学模様
ペン太さ=1
ペン色=青色
Xを 0から 30まで 繰り返し(
  Yを 0から 30まで 繰り返し(
    X1 = X * 10
    Y1 = Y * 10
    X2 = 300 - X1
    Y2 = 300 - Y1
    (X1,Y1)から、(X2,Y2)へ、
  )
)
 今回は、n回ではなく、繰り返しを使ったものです。こんな簡単なプログラムでも、ずいぶん面白い図形が描かれたことと思います。

■●を組み合わせる

 では、次に四角形命令で遊んでみましょう。
ペン太さ=4
ペン色=赤色
塗り色=黒色
30回(
  X = 300- 回数 * 10
  (0,0)から、(X,X)へ、四角形

上のプログラムにちょっと円形を組み合わせてみました!
ペン太さ=4
塗り色=白色
30回(
  X = 300- 回数 * 10
  ペン色=青色
  (0,0)から、(X,X)へ、四角形
  ペン色=黄色
  (0,0)から、(X,X)へ、円形


 な〜んか、不思議な図形ができました。

作った図形は保存して素材として利用

せっかく面白い模様ができたら、ホームページの素材などに利用しましょう!

描画した内容を保存するには、『イメージ保存』命令を使います。この命令は、拡張子を、bmp png jpeg などに変えれば、自動的にその拡張子の形式に変換して保存してくれる便利な命令です。
ペン太さ=4
塗り色=白色
ペン色=青色
30回(
  X = 300 - 回数 * 10
  (0,0)から、(X,X)へ、円形

デスクトップのパス&"pic1.png"へ、母艦を、イメージ保存

三角関数など使おう

 さて、ちょっと応用ですが、SIN、COSなどの三角関数を使うとより、不思議な模様を描くことができます。とりあえず、基本的なSINグラフを描いてみます。
ペン太さ=4
ペン色=青色
PI = 3.14
360回(
  X = 回数 - 1
  Y = SIN( X / 180 * PI ) * 100 + 200
  (X,Y)から、(X+1,Y+1)へ、円形。
SIN、COS を使うには、数学の知識が必要ですが、特に適当に幾何学模様を書くだけでしたら、知識がない方が思いがけない不思議な模様に出会うことができます。
ペン太さ=1
PI = 3.14
360回(
  I = 回数 - 1
  ペン色=RGB((I*2) % 256,100,0)
  X = I
  Y = SIN( X / 90 * PI ) * 100 + 200
  Z = (X % 5) * 100
  (Z,0)から、(X,Y+1)へ、
上のプログラムも適当に作りました。でも、面白い変な図形が描けました。

まとめ

 私は、Palm(手のひらサイズのコンピューター)を持ち歩いているのですが、そのPalm上でプログラムが作れる、SmallBasicを愛用しています。私は月に数回の出張があるのですが、この出張の時は、新幹線の中で、何時間も、ずーーっと、こんな図形を描いたりして遊んでいます。
 ペンと紙を使って描く絵も面白いですけど、こうやって、プログラムで描く図形も面白いと思いませんか?

戻る