Processing確認問題03

座標と繰り返しのおさらいをしよう

上図のような方眼紙を作ろうとした場合、点線を描く必要があります。今回は座標と繰り返しのおさらいをしながら点線を描くプログラムを作ります。

全4問(STEP1~STEP4)

ステップが作れたらその都度、Slackでプログラムのソースを送ってください。
(先生からOKが返ってこなくても次に進んで良いです)

STEP1

上図のように画面中央に線を描きなさい。画面サイズを変更しても上下中央に描かれるようにしましょう。条件は下記のとおりです。

  • 試す画面サイズ:size(600,400)、size(600,100)
  • 画面サイズが変わっても上下中央に描かれる
  • 左右30pxずつ余白を作る

STEP2

上図のように画面上下中央に点線を描いてください。条件は下記のとおりです。

  • 試す画面サイズ:size(600,400)、他いろいろ
  • 画面サイズが変わっても上下中央に描かれる
  • 点線の間隔:10px(黒10px、なし10pxで繰り返す)

STEP3

Step2では点線の間隔を10px(黒10px、なし10pxで繰り返す)としましたが、プログラムを改良して、stepという変数に点線の間隔を格納し、点線の間隔を手軽に変更できるようにしなさい。

step = 5 の場合
step = 13 の場合
  • 試す画面サイズ:size(600,200)
  • 試す点線の間隔:5px、13px

雛形

def setup():
    size(600, 200)
    step = 5
    # step = 13

STEP4

好きな位置に点線を描けるline2という関数を作成しなさい。

  • 試す画面サイズ:size(600,200)
  • 試す点線の間隔:5px、13px
  • 縦線や斜線には対応しなくてOKです。してくれてもいいけどね!
    (ピタゴラスの定理が必要)

雛形

def line2(x1, y1, x2, y2):
    step = 5
    # step = 13
    # ここに点線のプログラムを書いてね
    line(x1, y1, x2, y2) # これはサンプル。ただの線。消してね
    
def setup():
    size(600, 200)
    line2(100, 50, 400, 50)
    line2(200, 100, 350, 100)
    line2(370, 150, 430, 150)

STEP999

無理だと思うけど斜め対応。以下はヒントです。

  • ピタゴラスの定理(三平方の定理)
  • 2乗を求める命令…sq()
  • 平方根を求める命令…sqrt()