绘制平滑的曲线

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我是根据前后点距离,乘以前后线段法向量的角平分线的垂线,如果点的距离非常均匀,这种曲线绘制出来的就发出优美。

相关推荐
Han.miracle1 分钟前
HTML 核心基础与常用标签全解析
前端·html
几何心凉5 分钟前
AI推理加速:openFuyao算力释放的核心引擎
前端
abcefg_h11 分钟前
GO Web开发详细流程(无框架,restful风格,MVC架构)
开发语言·前端·golang
码界奇点13 分钟前
基于Spring Cloud Alibaba与Vue.js的分布式在线教育系统设计与实现
前端·vue.js·分布式·spring cloud·架构·毕业设计·源代码管理
fruge13 分钟前
Web Components 封装实战:打造可复用的跨框架组件
前端
糖墨夕14 分钟前
超越随机:JavaScript中真正可靠的唯一标识符生成策略
前端·javascript
码界奇点14 分钟前
基于SpringBoot3+Vue的前后端分离电商系统设计与实现
前端·javascript·vue.js·spring·毕业设计·鸿蒙系统·源代码管理
wordbaby23 分钟前
macOS ⇄ Android 局域网无线传输 APK 终极方案
前端
m0_4711996323 分钟前
【vue】通俗易懂的剖析vue3的响应式原理
前端·javascript·vue.js
LYFlied28 分钟前
【一句话概括】前端项目包管理器怎么选?
前端·npm·pnpm·yarn