私はここにこのアルゴリズムを持っています:
pc = # the point you are coloring now
p0 = # start point
p1 = # end point
v = p1 - p0
d = Length(v)
v = Normalize(v) # or Scale(v, 1/d)
v0 = pc - p0
t = Dot(v0, v)
t = Clamp(t/d, 0, 1)
color = (start_color * t) + (end_color * (1 - t))
ポイントツーポイントの線形グラデーションを生成します。それは私にとって非常にうまくいきます。放射状のグラデーションを生成するための同様のアルゴリズムがあるかどうか疑問に思いました。同様に、特定の色(Pはペイントしている座標)でPを解くのではなく、点Pで色を解くものを意味します。
ありがとう