绘制平滑的曲线

CatmulRoom

js 复制代码
function clacCatmulRoom(t: number, p0: number, p1: number, p2: number, p3: number) {
  return 0.5 *
    (
      (2 * p1) +
      (p2 - p0) * t +
      (2 * p0 - 5 * p1 + 4 * p2 - p3) * t * t +
      (3 * p1 - p0 - 3 * p2 + p3) * t * t * t
    );
}

遇到的问题,在一条长直线之后,拐弯的地方很不自然

黑色的是用户输入点,红绿点是细分后的点,感觉应该是这个曲线函数的一个缺陷。

hermite 埃尔米特曲线

在线查看

这个曲线也有缺点,点1点2前后的点,如果距离非常远,就会导致点1和点2之间的驼峰

这个主要是控制点v0、v1没有控制好,但是这个v0、v1我是根据前后点距离,乘以前后线段法向量的角平分线的垂线,如果点的距离非常均匀,这种曲线绘制出来的就发出优美。

相关推荐
yvvvy2 分钟前
《救命!原生 JS 差点把我 “送走”,直到遇见了 Vue 和 React…》
前端·javascript
每天都想睡觉的19004 分钟前
Vue 的 keep-alive 详解:作用、问题与优化
前端·vue.js
curdcv_po4 分钟前
🫴为什么看大厂的源码,看不到undefined,看到的是void 0
前端
就是我5 分钟前
Electron多窗口应用实战
前端·javascript·electron
芝士加7 分钟前
最全301/302重定向指南:从SEO到实战,一篇就够了
前端·javascript·面试
若梦plus8 分钟前
React19 状态管理方案与原理剖析
前端·react.js
陈随易8 分钟前
2025年100个产品计划之第7个(树图) - 目录结构生成工具
前端·后端·程序员
Joomla中文网9 分钟前
掌握Joomla 4/5自定义库开发:实现PSR-4规范与无缝自动加载
前端
若梦plus10 分钟前
Zustand 使用优化:深入探讨状态管理性能提升
前端·react.js