问题描述
在我的作业中,我尝试使用贝塞尔曲线创建一个形状。我使用了贝塞尔插值的方法,但因为我错过了最后一条曲线,因为当我求解线性方程时,我假设边缘的二阶导数为 0。
我想知道是否有一种方法可以绘制一个封闭的形状并将第一个和最后一个点连接起来。到目前为止,这是我的代码。
result = np.array(result,dtype=np.float32)
P = [2 * (2 * result[i] + result[i + 1]) for i in range(len(result)-1)]
P[0] = result[0] + 2 * result[1]
P[13] = 8 * result[13] + result[14]
A = np.linalg.solve(self.C,P)
B = [0] * 14
for i in range(13):
B[i] = 2 * result[i + 1] - A[i + 1]
B[13] = (A[13] + result[14]) / 2
for i in range(6):
Ci = np.stack([result[i],A[i],B[i],result[i+1],])
multi = np.matmul(self.T3,self.M3)
pts = np.matmul(multi,Ci)
plt.plot(pts[:,0],pts[:,1])
last_A = 2*result[-1] - B[-1]
last_B = A[-1] - 2* B[-1] + 2*last_A
Ci = np.stack([result[-1],last_A,last_B,result[0],])
multi = np.matmul(self.T3,self.M3)
pts = np.matmul(multi,Ci)
plt.plot(pts[:,1],'b')
plt.show()
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)