曲线的变形

类别:    标签: 编程 python   阅读次数:   版权: (CC) BY-NC-SA

问题: 如何将一条曲线沿另一条曲线进行扭曲或变形?

是很早以前看到的一个问题了, 我也曾经遇到过相关的具体问题, 不过当时采用简单的方法解决了. 最近重新思考了一下这个问题, 得到了比较一般的解决方法.

举个例子来说吧, 对于圆柱螺旋线, 如果其轴心线变为正弦曲线, 那螺旋线如何变化? 如果我们将圆柱螺旋线视为有弹性的螺线管, 那就相当于我们要将它套到正弦形状的柱子上, 只要螺旋管的弹性和柱子的形状匹配, 那螺旋管是可以套在上面的. 再推广一下就是任意的变形了. 这种问题在三维建模或者动画设计中应用较多, 也有一些相关的理论.

一般的解决方法是以弧长对参考曲线进行参数化, 然后借助旋转和平移将原曲线上的点变换到参考曲线标架上. 旋转时最好利用四元数方法, 因为更方便. 下面就是实现的一个例子:

这种方法可以推广到更复杂的情况, 如化学中的纳米管扭曲等.

一些资料

  1. 求3D曲线的法线向量
  2. 轴变形方法
  3. 螺线管圆环 1, 2, 3
  4. 平面曲线

代码(略)

◆本文地址: , 转载请注明◆
◆评论问题: https://jerkwin.herokuapp.com/category/3/博客, 欢迎留言◆


前一篇: 下载整理中国哲学电子书的脚本
后一篇: GMXTOP:集成MKTOP的原子类型判定代码

访问人次(2015年7月 9日起): | 最后更新: 2024-04-16 06:38:20 UTC | 版权所有 © 2008 - 2024 Jerkwin