def calc_curve(self,n=0,cpts_nr=20):
#Anfangswerte fr Step und u
u=0
step=float(self.Knots[-1])/(cpts_nr-1)
Points=[]
#Wenn die erste Ableitung oder hher errechnet wird die ersten
#Ableitung in dem tan als Winkel in rad gespeichert
tang=[]
while u<=self.Knots[-1]:
CK=self.bspline_ders_evaluate(n=n,u=u)
#Den Punkt in einem Punkt List abspeichern
Points.append(PointClass(x=CK[0][0],y=CK[0][1]))
#Fr die erste Ableitung wird den Winkel der tangente errechnet
if n>=1:
tang.append(atan2(CK[1][1],CK[1][0]))
u+=step
return Points, tang
#Modified Version of Algorithm A3.2 from "THE NURBS BOOK" pg.93
评论列表
文章目录