ぱたへね

はてなダイアリーはrustの色分けができないのでこっちに来た

coding the matrix task 2.6.9 凸結合で線を書く

2点が2要素のリストとして与えられた時、その2点を端点とする線分上に等間隔に並んだ点のリストを100個返すPythonのプロージャsegment(pt1, pt2)を書け。
pt = [3.5, 3], pt2 = [0.5, 1]の時に、その点を描画せよ。

問題通りに解いてないけど、こんなアルゴリズムで線が引けることに関心した。理屈は大学入試で習っているはずだが、実際にプログラムで見たのは初めて。

# coding the matrix
# task 2.6.9
from myplot import plot

period = 100

pt1 = [3.5, 3]
pt2 = [0.5, 1]

s = []

for a in range(period):
    alpha = (1.0/period) * a
    beta = 1.0 - alpha
    x = pt1[0] * alpha + pt2[0] * beta
    y = pt1[1] * alpha + pt2[1] * beta
    s.append((x, y))

plot(s, file='task2.6.9.png')

結果