半径rの円を描くための座標計算

コンピュータ
確度を指定して斜めの線を引きたいのですが、色々調べてみたら円を描くことにになりました。

スクリプト

import math

def zahyou(x, y, r, angle):
  radian = (math.pi * angle) / 180
  xx = math.cos(radian) * r
  yy = math.sin(radian) * r
  return (x, y, x+xx, y+yy)

# イメージを新規作成
image = pdb.gimp_image_new(200, 200, 0)
pdb.gimp_display_new(image)
# レイヤー作成
layer = gimp.Layer(image, "Name1", 200, 200, RGB_IMAGE, 100, NORMAL_MODE)
pdb.gimp_image_insert_layer(image, layer, None, 0)

pdb.gimp_context_set_brush_size(1.0)

for a in range(360):
  # 座標
  points = zahyou(100, 100, 100, a)
  # ブラシで描画
  pdb.gimp_paintbrush_default(layer,len(points),points)

実行

GIMPのPythonコンソールにスクリプトを貼り付けて実行。(背景黒、描画色灰色)

pythonスクリプトで中心から一定の長さの線を角度を0~360度で描画したところ、円が描画されていました。
座標を求めるためcos()やsin()などの三角関数を使っています。昔習ったはずですが綺麗さっぱり忘れており、実際使うことに成るとは思いもしませんでした。

参考にしたページ


コメント