vtk 曲线 样式_VTK笔记——拟合样条曲线(Parametric Spline)-Go语言中文社区
相信大家对曲线并不陌生,在生活学习中都会接触到。同样,在3D方面,曲线大有用处。
什么是样条曲线
引用百度词条:
所谓样条曲线(Spline Curves)是指给定一组控制点而得到一条曲线,曲线的大致形状由这些点予以控制,一般可分为插值样条和逼近样条两种,插值样条通常用于数字化绘图或动画的设计,逼近样条一般用来构造物体的表面。
因此,要拟合一条曲线,控制点是必不可少的,通常点越多越好,但至少需要3个点,曲线的形状则是由曲线方程控制。
如何拟合插值样条曲线
其实思路比较简单,首先要将控制点插到vtkPoints,然后通过vtkParametricSpline来完成拟合。
下面就是由4个控制点拟合的样条曲线效果:
示例代码
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
int main(int, char *[])
{
double p0[3] = { 1.0, 0.0, 0.0 };
double p1[3] = { 0.0, 1.0, 0.0 };
double p2[3] = { 0.0, 0.0, 1.0 };
double p3[3] = { 1.0, 2.0, 3.0 };
vtkSmartPointer points =
vtkSmartPointer::New();
points->InsertNextPoint(p0);
points->InsertNextPoint(p1);
points->InsertNextPoint(p2);
points->InsertNextPoint(p3);
vtkSmartPointer spline =
vtkSmartPointer::New();
spline->SetPoints(points);
vtkSmartPointer functionSource =
vtkSmartPointer::New();
functionSource->SetParametricFunction(spline);
functionSource->Update();
vtkSmartPointer splineMapper =
vtkSmartPointer::New();
splineMapper->SetInputConnection(functionSource->GetOutputPort());
vtkSmartPointer splineActor =
vtkSmartPointer::New();
splineActor->SetMapper(splineMapper);
vtkSmartPointer sphereSource =
vtkSmartPointer::New();
sphereSource->SetPhiResolution(21);
sphereSource->SetThetaResolution(21);
sphereSource->SetRadius(.1);
vtkSmartPointer splinePointsData =
vtkSmartPointer::New();
splinePointsData->SetPoints(points);
vtkSmartPointer splinePointsMapper =
vtkSmartPointer::New();
splinePointsMapper->SetInputData(splinePointsData);
splinePointsMapper->SetSourceConnection(sphereSource->GetOutputPort());
vtkSmartPointer pointsActor =
vtkSmartPointer::New();
pointsActor->SetMapper(splinePointsMapper);
pointsActor->GetProperty()->SetColor(1, 0, 0);
vtkSmartPointer renderer =
vtkSmartPointer::New();
vtkSmartPointer renderWindow =
vtkSmartPointer::New();
renderWindow->SetSize(600, 600);
renderWindow->AddRenderer(renderer);
vtkSmartPointer renderWindowInteractor =
vtkSmartPointer::New();
renderWindowInteractor->SetRenderWindow(renderWindow);
renderer->AddActor(splineActor);
renderer->AddActor(pointsActor);
renderWindow->Render();
renderWindowInteractor->Start();
return EXIT_SUCCESS;
}
vtk 曲线 样式_VTK笔记——拟合样条曲线(Parametric Spline)-Go语言中文社区相关推荐
- java以太坊源码分析_以太坊区块链Java(EthereumJ)学习笔记:区块链结构-Go语言中文社区...
本文对EthereumJ的区块链相关的代码做一个简单的介绍. 以太坊区块链 以太坊区块链是在Bitcoin区块链的基础上发展起来的.区块链的数据结构既保留了Bitcoin区块链验证数据的真实性和完整性 ...
- 六行python代码的爱心曲线公式_六行python代码的爱心曲线-Go语言中文社区
前些日子在做绩效体系的时候,遇到了一件囧事,居然忘记怎样在Excel上拟合正态分布了,尽管在第二天重新拾起了Excel中那几个常见的函数和图像的做法,还是十分的惭愧.实际上,当时有效偏颇了,忽略了问题 ...
- pro android学习笔记,Pro Android学习笔记(六八):HTTP服务(2):HTTP POST-Go语言中文社区...
BufferedReader in = null; try{ //[Step 1]创建一个HttpClient的对象(或使用已有的) HttpClient client = new DefaultHt ...
- motan yar php,motan学习笔记 六 opentracing Brave+zipkin实现-Go语言中文社区
前面我们学习了,opentracing的接口定义 本文来学习motan用filter 来拦截请求,并用brace来实现,上报数据到zipkin zipkin是什么 本文主要讲brace 如何实现ope ...
- linux内核字符驱动设备,Linux学习笔记——linux内核字符设备驱动-Go语言中文社区...
尝试在树莓派安装的raspbian系统上进行linux字符设备驱动 1.更新安装kernel header源码 sudo apt-get update sudo apt-get install ras ...
- VTK笔记——插值样条曲线采样
有时候我们想通过在样条曲线上得到更多的点,比如用这些点来与另一条曲线连通生成三角条,让曲线在可视化的时候分辨率更高,等等,就需要用到曲线插值采用.最常见的是样条曲线插值采样. 曲线已经有了情况下(关于 ...
- access制作卡片_Access 制作曲线图表的笔记
时 间:2016-07-31 00:49:51 作 者:摘 要:Access 制作曲线图表的笔记 2016-07-30 在网上搜了很多Access制图帖子和案例, 但都感觉不符合自己意愿. 下面, 按 ...
- origin如何绘制双y轴曲线_Origin对曲线进行多峰拟合
点击上方关注点击下方点赞 ORIGIN教程 Origin对任意曲线进行多峰拟合 01 数据表 我们以11B NMR 核磁共振谱数据为例. 02 多峰拟合 为了增加教程的可参考性,本文以目前常用的最低版 ...
- 三次bezier曲线 MATLAB,Matlab-画二次及三次Bezier曲线-8控制点的B样条曲线
<Matlab-画二次及三次Bezier曲线-8控制点的B样条曲线>由会员分享,可在线阅读,更多相关<Matlab-画二次及三次Bezier曲线-8控制点的B样条曲线(3页珍藏版)& ...
最新文章
- c/s开发基础自学纪录为主
- bash 脚本的自解压流程
- 用BFS(广度优先搜索queuelist)算法解决农夫过河问题
- 博途v15安装过程中提示出错_博途V15.1对应的V90 HSP和GSD文件安装
- 为什么mysql与eclipse_为什么这个SQL在MySQL中而不是通过Eclipse执行?
- ASP.NET Core 消息传递:MediatR
- 10099 The Tourist Guide
- [导入]ExtJs 2.0 公司工程化应用的最佳实践(二)
- VC++常用数据类型
- 报名 | 上道沙龙:科技如何赋能传统金融?
- 机器学习中强化学习的一些知识
- ppt文件怎么压缩,ppt压缩的办法步骤
- 男人最碰不得的十大危险女人
- Matlab/Simulink仿真问题及技巧汇总【持续更新】
- 【R语言】典型相关分析,自写函数计算相关系数
- 跟我学RocketMQ之批量消息发送源码解析
- 【笔记】ssd mobilenet 网络
- 排序算法——十大排序算法总结与对比
- 人工智能技术在教育领域中的应用
- CSS(七) css列表样式(ul)
热门文章
- 安卓逆向—霸哥磁力搜索apk过签名校验
- 记swagger离线文档乱码解决
- 西安财经大学计算机考研科目,西安财经大学2020年硕士研究生考试复试科目与参考书目...
- 南京大学计算机考研考试大纲,南京大学计算机技术(专业学位)研究生考试科目和考研参考书目...
- python自动生成word报表之使用win32com插入自带可编辑的图表
- 【Kubernetes 企业项目实战】03、基于 Alertmanager 发送报警到多个接收方(下)
- 揭开AI产品PRD的面纱 | 浅谈其和互联网产品PRD的异同
- 上海在职研究生计算机专业考什么,中国人民大学计算机专业在职研究生考试考什么?...
- 在阿里云从0开始部署vue+springboot项目
- Centos Linux 单机安装 HBase 、使用 HBase