用vtk画抛物面
来源:互联网 发布:演唱会望远镜 知乎 编辑:程序博客网 时间:2024/06/05 15:07
主要运用vtk中vtkQuadric函数
伪代码
void ModleData::drawParaboloid(){float radius = data[7];float temp = -4 * data[8]; // data[7] 表示焦距vtkSmartPointer<vtkQuadric>quadric = vtkSmartPointer<vtkQuadric>::New();quadric->SetCoefficients(1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, temp, 0.0);//二次函数采样分辨率vtkSmartPointer<vtkSampleFunction>sample = vtkSmartPointer<vtkSampleFunction>::New();sample->SetSampleDimensions(40, 40, 20);sample->SetImplicitFunction(quadric);double xmin = -radius, xmax = radius,zmin = 1.0f / temp, zmax = - radius * radius / temp + zmin;sample->SetModelBounds(xmin, xmax, xmin, xmax, zmin, zmax);vtkSmartPointer<vtkContourFilter> contourFilter = vtkSmartPointer<vtkContourFilter>::New();contourFilter->SetInputConnection(sample->GetOutputPort());contourFilter->GenerateValues(1, 1, 1);contourFilter->Update();vtkSmartPointer<vtkPolyData> polyData = contourFilter->GetOutput();vtkSmartPointer<vtkTransform> transform = vtkSmartPointer<vtkTransform>::New();// 用户自定义平移旋转 (先移动后旋转)transform->Translate(data[0], data[1], data[2]);transform->Translate(0, 0, -zmin); transform->RotateWXYZ(data[6], data[3], data[4], data[5]);vtkSmartPointer<vtkTransformPolyDataFilter> TransFilter = vtkSmartPointer<vtkTransformPolyDataFilter>::New(); TransFilter->SetInputData(polyData); TransFilter->SetTransform(transform); //use vtkTransform (or maybe vtkLinearTransform) TransFilter->Update(); polyData = TransFilter->GetOutput();//可视化,设置mapper、actorvtkSmartPointer<vtkPolyDataMapper>mapper = vtkSmartPointer<vtkPolyDataMapper>::New();mapper->SetInputData(polyData);actor = vtkSmartPointer<vtkActor>::New();actor->SetMapper(mapper);}运行效果
0 0
- 用vtk画抛物面
- 用unity画抛物面
- 问题三十五: 怎么用ray tracing画二次曲面(quadratic surfaces)(3)——椭球抛物面
- 问题三十五: 怎么用ray tracing画二次曲面(quadratic surfaces)(4)——双曲抛物面(马鞍面)
- 双曲抛物面
- VTK
- VTK
- vtk
- vtk
- vtk
- VTK
- 用VTK显示平面图片
- 用VTK绘制DEM之一
- 抛物线与双曲线、抛物面与锥面
- 20170622使用VTK库画一个立方体
- 用VTK绘制DEM之二
- 用 Mingw 编译 VTK 5.0.4
- VTK 交互帖 日后整理用(1)
- Linux课堂笔记(2)
- 软件测试学习笔记4-软件测试模型
- google笔试题两个n维数组logn求中位数问题【转载】
- java虚拟机垃圾回收机制(GC)【转载】
- linux(redhat)下 配置java环境
- 用vtk画抛物面
- ubuntu下安装mysql环境
- 正则表达式从入门到精通
- FleaPHP和ThinkPHP(比较)
- 博客
- 务必一定好C语言!——必须的 (转载)
- vb.net 教程 1-6 数据类型:数值数据转换 1
- mysql使用中mysqld.sock can't find
- JavaFX简单入门(IDE 6.8 for JavaFX 1.2)