草庐IT

python - 求封闭二维均匀三次 B 样条的面积

我有一个2d点列表,它们是闭合均匀三次B样条的控制顶点(Dx)。我假设一条简单的曲线(非自相交,所有控制点都是不同的)。我试图找到曲线所包围的区域:如果我计算结点(Px),我可以把曲线当作一个多边形;然后我“只”需要为每个段找到实际曲线和连接结点的直线之间的剩余增量区域。我知道B样条的形状(因此面积)在旋转和平移下是不变的-所以对于每个线段,我可以找到一个平移将t=0结放在原点和一个旋转将t=+x轴上的1个结:我可以通过插入点并重新分组来找到曲线的方程式:P(t)=((t**3)*(-Dm1+3*D0-3*D1+D2)+(t**2)*(3*Dm1-6*D0+3*D1)+t*(-3*Dm

python - Python 样条曲线(使用控制节点和端点)

我正在尝试做类似下面的事情(从维基百科中提取的图像)#!/usr/bin/envpythonfromscipyimportinterpolateimportnumpyasnpimportmatplotlib.pyplotasplt#samplingx=np.linspace(0,10,10)y=np.sin(x)#splinetroughallthesampledpointstck=interpolate.splrep(x,y)x2=np.linspace(0,10,200)y2=interpolate.splev(x2,tck)#splinewithallthemiddlepoint

python - Python 样条曲线(使用控制节点和端点)

我正在尝试做类似下面的事情(从维基百科中提取的图像)#!/usr/bin/envpythonfromscipyimportinterpolateimportnumpyasnpimportmatplotlib.pyplotasplt#samplingx=np.linspace(0,10,10)y=np.sin(x)#splinetroughallthesampledpointstck=interpolate.splrep(x,y)x2=np.linspace(0,10,200)y2=interpolate.splev(x2,tck)#splinewithallthemiddlepoint

python - 边界处有约束的样条

我在三维网格上测量了数据,例如f(x,y,t)。我想用样条在t的方向上插入和平滑这些数据。目前,我使用scipy.interpolate.UnivariateSpline执行此操作:importnumpyasnpfromscipy.interpolateimportUnivariateSpline#dataismymeasureddata#data.shapeis(len(y),len(x),len(t))data=np.arange(1000).reshape((5,5,40))#justfordemonstrationtimes=np.arange(data.shape[-1])y

python - 边界处有约束的样条

我在三维网格上测量了数据,例如f(x,y,t)。我想用样条在t的方向上插入和平滑这些数据。目前,我使用scipy.interpolate.UnivariateSpline执行此操作:importnumpyasnpfromscipy.interpolateimportUnivariateSpline#dataismymeasureddata#data.shapeis(len(y),len(x),len(t))data=np.arange(1000).reshape((5,5,40))#justfordemonstrationtimes=np.arange(data.shape[-1])y

UE4/5样条线学习(二):样条网格体组件的使用

目录效果展示:制作:效果展示:制作:        前面的步骤和之前的UE4/5样条线学习(一):基础的样条线使用_多方通行8的博客-CSDN博客是一样的。        创建一个actor蓝图,然后一个公告板组件,只不过这里我们要使用的是样条网格体组件。 然后选择模型:最好自然是一个水管类型的模型,如果没有也可以拿一个圆柱体来实验。 然后,我们创建两个变量,公开并且打开相关的设置(两个都打开。):然后在构造函数开始写:这个逻辑是为了在样条网格体组件中生成一个沿着路径线性插值的网格,使得网格在路径上的布局更加自然:1.计算出在起始变换点Start的旋转下的切线方向。2.将切线方向乘以变换点St

UE4/5样条线学习(一):基础的样条线使用

目录效果展示:制作:组件逻辑效果展示:注:按住alt拉轴可以拉出多一个点制作:第一步我们创建一个蓝图,命名为BP_Sline:组件之后我们开始找组件,输入bill,我们可以看见下面这些,我们要的是第一个,这个的目的是为了让你更好的看到样条线的根组件在哪:然后将这个发到根组件替换即可。之后再添加一个样条组件(下面有两个,这一次我们用的是下面的这个):然后就是这个样子的:逻辑之后我们转到构造函数的地方:我们将在这里面写逻辑,让模型会跟着样条线首先,我们创建3个变量:将这3个变量公开,这样我们就可以在外面更改这些参数。然后开始讲解一下逻辑:1.计算模型数量:可以通过输入模型的总数来确定。2.计算样条

UE4/5样条线学习(四):样条线的创建和自然摆动

这一次我们创建一个actor蓝图,不过我们这次并不需要在一开始就创建样条线组件,而是在游戏中根据两个点去创建样条线,然后用时间轴根据样条线带动物品旋转位移。 制作:组件部分:第一步,创建一个actor蓝图,然后改为公告板为根。然后我们要创建两个可以获取场景坐标的组件,不论是静态网格体组件或者是场景组件等等都可以,这里笔者将用2个静态网格体组件。命名为开始点和结束点,为了在场景中更好的识别,开始点是菱形,结束点是正方体。之后我们添加几个要悬挂在样条线上面的物品4个实心的圆锥:构造函数逻辑:起始和结束 我们来到构造函数,为了适应性,我们自然是希望在场景中调节开始点和结束点的位置,所以我们要创建两个

数值计算之 插值法(6)样条插值

数值计算之插值法(6)样条插值前言分段插值存在的问题样条插值三次样条插值样条插值与分段埃尔米特插值的区别后记前言本篇介绍插值法的最后一节,样条插值。分段插值存在的问题采用分段插值可以避免龙格现象,提升插值精度,但是分段插值的结果并不平滑。采用分段三次埃尔米特插值能够使得插值结果在节点附近相对平滑(没有突变点)。但是其平滑性也只是对于一阶导而言的。为了让插值结果具有更好的平滑性,可以使用样条插值。样条插值对于待插值函数f(x)f(x)f(x),已知节点x0,x1,…,xnx_0,x_1,\dots,x_nx0​,x1​,…,xn​处的函数值,将相邻两节点进行分段,获得n个插值小区间,在每个区间内

c++ - 有没有什么好的库可以在 C++ 中求解三次样条曲线?

已结束。此问题不符合StackOverflowguidelines.它目前不接受答案。要求我们推荐或查找书籍、工具、软件库、教程或其他非现场资源的问题对于StackOverflow来说是题外话,因为它们往往会吸引固执己见的答案和垃圾邮件。相反,请描述问题以及迄今为止为解决该问题所做的工作。关闭8年前。Improvethisquestion我正在寻找一个好的C++库来为我提供解决大型三次样条曲线(大约1000点)的函数,有人知道吗? 最佳答案 自己写。这是我根据优秀wikialgorithm编写的spline()函数:#include