• k8com@j90001.com
  • 深圳市宝安区航城街道三围社区固戍红湾股份公司A栋101、701、801

三次曲线拆成两段后怎样保持原来的路径:规则练习第01例

2026-11-09

曲线路径可以被切成两段,方便局部编辑或分段采样。但直接把四个控制点分成两组会改变形状;正确拆分需要利用逐层插值产生新的控制点。

给定四个二维控制点,用相邻点线性插值得到三点,再插值得到两点,最后得到曲线上一点。在参数二分之一处分割,左段使用左侧各层点,右段使用右侧各层点,两段共享最后的分割点。

本例输入与约定

原四个控制点为[[-8, 7], [8, 8], [-7, -4], [0, -1]]。左段新控制点[['-8', '7'], ['0', '15/2'], ['1/4', '19/4'], ['-5/8', '9/4']];右段新控制点[['-5/8', '9/4'], ['-3/2', '-1/4'], ['-7/2', '-5/2'], ['0', '-1']]。

完整计算记录

局部参数 | 左段点 | 原曲线前半点 | 右段点 | 原曲线后半点 0 | ['-8', '7'] | ['-8', '7'] | ['-5/8', '9/4'] | ['-5/8', '9/4'] 1/4 | ['-1715/512', '873/128'] | ['-1715/512', '873/128'] | ['-711/512', '61/128'] | ['-711/512', '61/128'] 1/2 | ['-63/64', '23/4'] | ['-63/64', '23/4'] | ['-125/64', '-7/8'] | ['-125/64', '-7/8'] 3/4 | ['-145/512', '527/128'] | ['-145/512', '527/128'] | ['-869/512', '-189/128'] | ['-869/512', '-189/128'] 1 | ['-5/8', '9/4'] | ['-5/8', '9/4'] | ['0', '-1'] | ['0', '-1']

表中编号仅用于识别本例的元素。读取一个结果时,应先核对它对应的输入、处理顺序和边界约定;布尔值表示条件是否成立,空集合表示没有符合要求的对象,不应把这些字段混成同一种数值。

复核方法与适用范围

左段局部参数s对应原曲线参数s除以二,右段对应二分之一加s除以二。分别检查多个采样点精确相等,并确认两段端点连接;路径相同不代表用同样参数速度会保持原来每秒位移。

这里处理的是平面三次曲线,未进行按弧长均匀采样。控制点通常不在曲线上,除了首尾点;不要因为分段控制点的位置变了,就误判绘制的轨迹一定发生改变。

练习时可以先独立计算最前面的一步,再检查最后的整体不变量。若结论不同,应保留各步记录,定位第一处差异;只调整最终数字会掩盖规则理解上的问题。改变输入后也要重新演算,而不是照抄这一例的输出。