- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
贝塞尔曲线及插值全解
贝塞尔曲线及插值
????? 这里主要讲一下如何在excel及vb中实现贝塞尔曲线插值,程序来源于互联网(程序作者: 海底眼(Mr. Dragon Pan在excel中用宏实现),本文作为少量修改,方便在vb中调用,经运行证明是没错的,下面程序可作成一个模块放到vb或vba中调用:
?? Excel的平滑线散点图,可以根据两组分别代表X-Y坐标的散点数值产生曲线图?? 但是,却没有提供这个曲线图的公式,所以无法查找曲线上的点坐标?? 后来我在以下这个网页找到了详细的说明和示例程序?? ..............................................................................?? /Smooth_curve_bezier_example_file.zip?? ..............................................................................?? 根据其中采用的算法,进一步增添根据X坐标求Y坐标,或根据Y坐标求X坐标,更切合实际需求?? 这个自定义函数按照Excel的曲线算法(三次贝塞尔分段插值),计算平滑曲线上任意一点的点坐标?? Excel的平滑曲线的大致算法是:?? 给出了两组X-Y数值以后,每一对X-Y坐标称为节点,然后在每两个节点之间画出三次贝塞尔曲线(下面简称曲线)?? 贝塞尔曲线的算法网上有很多资源,这里不介绍了,只作简单说明?? 每条曲线都由四个节点开始,计算出四个贝塞尔控制点,然后根据控制点画出唯一一条曲线?? 假设曲线的源数据是节点1,节点2,节点3,节点4(Dot1,Dot2,Dot3,Dot4)?? 那么贝塞尔控制点的计算如下???????????????
?? Dot2是第一个控制点,也是曲点的起点,Dot3是第四个控制点也是曲线的终点?? 第二个控制点的位置是:???? 过第一个控制点(Dot2,起点),与Dot1, Dot3的连线平行,且与Dot2距离为 1/6 * 线段Dot1_Dot3的长度?????? 假如是图形的第一段曲线,取节点1,1,2,3进行计算,即 Dot2 = Dot1?????? 且第二个控制点与第一控制点距离取 1/3 * |Dot1_Dot3|,而不是1/6 * |Dot1_Dot3|?????? 假如 1/2 * |Dot2_Dot3| 1/6 * |Dot1_Dot3|?????? 那么第二个控制点与第一控制点距离取 1/2 * |Dot2_Dot3|,而不是1/6 * |Dot1_Dot3|?? 第三个控制点的位置是:?????? 过第四个控制点(Dot3,终点),与Dot2, Dot4的连线平行,且与Dot3距离为 1/6 * |Dot2_Dot4|?????? 假如是图形的最后一段曲线,取节点Last-2,Last-1,Last,Last进行计算,即 Dot4 = Dot3?????? 且第三个控制点与第四控制点距离取 1/3 * |Dot2_Dot4|,而不是1/6 * |Dot2_Dot4|?????? 假如 1/2 * |Dot2_Dot3| 1/6 * |Dot2_Dot4|?????? 那么第二个控制点与第一控制点距离取 1/2 * |Dot2_Dot4|,而不是1/6 * |Dot2_Dot4|...............................................................................................?? 这个自定义函数的计算流程是?? Step1: 检查输入的X-Y数值是否有错误,如(输入不够三个点,X-Y的数量不一致,起始搜索节点超过范围等等)?? Step2: 从参数指定的节点开始,计算出四个贝塞尔控制点,得到贝塞尔插值多项式方程,??? 然后代入已知的待求数值,看它能不能满足 f(t)=0 有解 (即曲线包含待查数值)?? Step3: 如果 f(t)=0 有解,根据解出来的 t 值计算X-Y坐标,退出程序,否则继续检查下一段曲线?? Step4: 如果所有分段曲线都不包含待查数值,退出程序...............................................................................................
Option ExplicitOption Base 1?????? 所有数组的第一个元素编号为1(默认为0)Type Vector???????? 自定义数据结构(用二维向量
您可能关注的文档
- 调质钢、弹簧钢、滚动轴承钢全解.ppt
- 调音台编组和辅助的区别和作用全解.ppt
- 调节血压功能的原料全解.ppt
- 谈判技巧讲座和实战演练全解.ppt
- 调酒用品和酒杯全解.ppt
- 谈化学教师如何说课(2016西北师大骨干教师国培)全解.ppt
- 谈谈80后员工的管理全解.doc
- 调整色彩与添加特效全解.ppt
- 谈追星行为全解.ppt
- 谈课堂教学的有效性.全解.ppt
- 2024年江西省高考政治试卷真题(含答案逐题解析).pdf
- 2025年四川省新高考八省适应性联考模拟演练(二)物理试卷(含答案详解).pdf
- 2025年四川省新高考八省适应性联考模拟演练(二)地理试卷(含答案详解).pdf
- 2024年内蒙通辽市中考化学试卷(含答案逐题解析).docx
- 2024年四川省攀枝花市中考化学试卷真题(含答案详解).docx
- (一模)长春市2025届高三质量监测(一)化学试卷(含答案).pdf
- 2024年安徽省高考政治试卷(含答案逐题解析).pdf
- (一模)长春市2025届高三质量监测(一)生物试卷(含答案).pdf
- 2024年湖南省高考政治试卷真题(含答案逐题解析).docx
- 2024年安徽省高考政治试卷(含答案逐题解析).docx
文档评论(0)