曲线平滑-B样条曲线
3D空间曲线三次B样条平滑示例:
struct D_DOT3D //D_DOT3D示例,未完全实现
{ double x,y,z;
} double GetThreeBSplineValue(double p0, double p1, double p2, double p3, double t)
{double A0 = (p0 + 4*p1 + p2) / 6;double A1 = - (p0 - p2)/2;double A2 = (p0 - 2*p1 + p2) / 2;double A3 = - (p0 - 3*p1 + 3*p2 - p3)/6;return A0 + A1 * t + A2 * t*t + A3 * t*t*t;
}D_DOT3D GetThreeBSplineValue(D_DOT3D p0, D_DOT3D p1, D_DOT3D p2, D_DOT3D p3 , double t)
{D_DOT3D dot;dot.x = GetThreeBSplineValue(p0.x, p1.x, p2.x, p3.x, t);dot.y = GetThreeBSplineValue(p0.y, p1.y, p2.y, p3.y, t);dot.z = GetThreeBSplineValue(p0.z, p1.z, p2.z, p3.z, t);return dot;
}long ThreeBSplineCurve( vector<D_DOT3D> &line )
{if (line.size()<4)return 0;vector<D_DOT3D> vout;for (int i=0; i<line.size()-3; ++i){D_DOT3D p0(line[i]);D_DOT3D p1(line[i+1]);D_DOT3D p2(line[i+2]);D_DOT3D p3(line[i+3]);if(0 == i){D_DOT3D dot1 = GetThreeBSplineValue(p0, p1, p2, p3, 0.0);vout.push_back(dot1);}D_DOT3D dot2 = GetThreeBSplineValue(p0, p1, p2, p3, 1/3.0);D_DOT3D dot3 = GetThreeBSplineValue(p0, p1, p2, p3, 2/3.0);D_DOT3D dot4 = GetThreeBSplineValue(p0, p1, p2, p3, 1.0);vout.push_back(dot2);vout.push_back(dot3);vout.push_back(dot4);}line = vout;return 1;
}
曲线平滑-B样条曲线相关推荐
- python 曲线平滑处理——方法总结(Savitzky-Golay 滤波器、make_interp_spline插值法和convolve滑动平均滤波)
文章目录 1 插值法对曲线平滑处理 1.1 插值法的常见实现方法 1.2 拟合和插值的区别 1.3 代码实例 2 Savitzky-Golay 滤波器实现曲线平滑 2.1 问题描述 2.2 Savit ...
- python 数据、曲线平滑处理
python 数据.曲线平滑处理--方法总结 Savitzky-Golay 滤波器实现曲线平滑 插值法对折线进行平滑曲线处理 基于Numpy.convolve实现滑动平均滤波 数据平滑处理--log( ...
- 计算机图形学——bazier曲线和B样条曲线
目录 前言 一.bazier曲线 1.bazier曲线的由来 二.B-spline 1.为何要引入B-spline曲线,Bazier曲线有何不足 2.B-spline曲线方法 前言 写这篇文章是因为最 ...
- Python之数据分析(案例:净额成交量、矢量化、数据曲线平滑)
文章目录 一.净额成交量 二.标量函数矢量化 三.数据曲线平滑 一.净额成交量 1.案例分析 符号数组a: [10 -20 30 40 -50] 用法:numpy.sign(a) 结果是[1 -1 1 ...
- python 曲线平滑_曲线平滑(smoothing)
曲线平滑 Savitzky-Golay滤波器 It uses least squares to regress a small window of your data onto a polynomia ...
- 贝塞尔曲线与B样条曲线
文章目录 0.参考 1.问题起源与插值法的曲线拟合 1.1.问题起源 1.2.拉格朗日插值 1.3."基"的概念 1.4.插值存在的Runge现象 2.贝塞尔曲线 2.1.控制点的 ...
- 多项式曲线——搞清楚贝塞尔曲线、B样条曲线、Nurbs曲线的区别
多项式曲线--搞清楚贝塞尔曲线.B样条曲线.nurbs曲线的区别 贝塞尔曲线 Bezier曲线定义 Bernstein基函数的性质 Bezier曲线的性质 B样条曲线 B样条曲线定义 B样条基函数的性 ...
- python 数据、曲线平滑处理——基于Numpy.convolve实现滑动平均滤波——详解
文章目录 1 基于Numpy.convolve实现滑动平均滤波 1.1 滑动平均概念 1.2 滑动平均的数学原理 1.3 语法 1.4 滑动平均滤波示例 2 曲线平滑处理--Savitzky-Gola ...
- 曲线平滑/散点拟合——卡尔曼滤波
曲线平滑/散点拟合--卡尔曼滤波 1. 初始化一系列的点 2.变量 3. 迭代过程 4. 结果 Date: 2020/04/15 Editor:萧潇子(Jesse) Contact: 12231676 ...
最新文章
- 内存问题分析的利器——valgrind的memcheck
- 如何在ubuntu下使用samba创建共享
- [原]Java 正则 多子串 匹配 替换
- Linux环境下MySQL基础命令(3)----增、删、改、查语句
- IDEA及IDEA汉化包
- 机器学习实战之SVM
- OpenCV学习(1) OpenCV的安装
- 太赞了!用200道题彻底搞定Python数据处理!
- 替代JavaOne 2013
- 论文学习15-Table Filling Multi-Task Recurrent Neural Network(联合实体关系抽取模型)
- 前端开发使用的 安卓模拟器_抖音有电脑版或者网页版吗?如何在电脑上使用抖音?...
- Java List remove()方法– ArrayList remove()
- CAM(内容可寻址存储器)的认知
- 2018~2021年软考下午真题考点总结-软考最新
- js 车牌号模糊处理
- 石墨烯的精细结构研究取得进展
- api 接口管理工具
- Android通知渠道
- linux 6.5光驱是什么意思,linux 6和5有什么不同
- 漫画:位运算技巧助你俘获offer