提问人:Or Meiri 提问时间:2/14/2021 最后编辑:martineauOr Meiri 更新时间:2/14/2021 访问量:139
使用贝塞尔曲线闭合形状
Closing a shape using bezier curves
问:
在我的作业中,我尝试使用贝塞尔曲线创建一个形状。我使用了贝塞尔插值法,但正因为如此,我错过了最后一条曲线,因为当我求解线性方程时,我假设边中的二阶导数为 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[:, 0], pts[:, 1],'b')
plt.show()
答: 暂无答案
下一个:规范化数组中的所有其他元素
评论