# 根据给出的型值点列反算B样条曲线的控制多边形,并画出均匀B样条曲线验证计算结果
import numpy as np
from scipy import linalg
import matplotlib.pyplot as plt
# 反算控制多边形,Px,Py为已知的型值点列,dP_0_x, dP_0_y, dP_n_x,dP_n_y为端点处的一阶导数值
# 返回方程组的系数矩阵和右端常数项
def cal_back(Px, Py, dP_0_x, dP_0_y, dP_n_x, dP_n_y):
n = len(Px) - 1
A = np.zeros(shape=[n + 3, n + 3]) # 构造线性方程组的系数矩阵,除了即将赋值的元素,其余元素皆为0
bx = np.zeros(n + 3) # 构造方程组右端横坐标的常数值
by = np.zeros(n + 3) # 构造方程组右端纵坐标的常数值
# 给系数矩阵和右端常数项赋值,第一行到第n+1行
for i in range(n + 1):
A[i][i] = 1
A[i][i + 1] = 4
A[i][i + 2] = 1
bx[i] = Px[i]
by[i] = Py[i
反算B样条曲线控制顶点(Python)
最新推荐文章于 2024-04-21 20:54:37 发布