使用贝塞尔曲线闭合形状

问题描述

在我的作业中,我尝试使用贝塞尔曲线创建一个形状。我使用了贝塞尔插值的方法,但因为我错过了最后一条曲线,因为当我求解线性方程时,我假设边缘的二阶导数为 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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...