计算机能画一条线段(数学意义上)吗?并不能。不管多短的一条线段,都包含实数集上的无数个点,计算机能做的是尽可能多地采样,描更多的点,让人眼难以看出其中的不连续性。
已知
x,y
分别为坐标轴上的两点,下式为采样公式,
x′=(1−p)⋅x+p⋅y,p∈[0,1]
对
p
在整个
import numpy as np
import matplotlib.pyplot as plt
def main():
x0, x1 = [1, 1], [2, 2]
for p in np.linspace(0, 1, 1000):
plt.plot((1-p)*x0[0]+p*x1[0], (1-p)*x0[1]+p*x1[1], '.', c='k')
plt.plot(x0[0], x0[1], 'o', ms=10)
plt.plot(x1[0], x1[1], 'o', ms=10)
plt.show()
if __name__ == '__main__':
main()
我们不妨对该公式做一次简单推导,如图所示:
x⃗ −z⃗ =k(z⃗ −y⃗ )⇓x⃗ +ky⃗ =(1+k)z⃗ ⇓z⃗ =11+kx⃗ +k1+ky⃗ ⇓11+k→λ,11+k≤1z⃗ =λx⃗ +(1−λ)y⃗