当前位置: 首页 > news >正文

如何设计出一个好网站长尾关键词挖掘工具爱网站

如何设计出一个好网站,长尾关键词挖掘工具爱网站,有赞商城小程序入口,阿里巴巴做外贸的网站vtkContourFilter 是 VTK(Visualization Toolkit)中的一个关键类,用于从输入数据生成等值线或等值面。它是基于阈值的过滤器,可以从标量字段中提取等值线或等值面。vtkContourFilter 的核心功能是根据用户指定的值生成等值线或等值…

vtkContourFilter 是 VTK(Visualization Toolkit)中的一个关键类,用于从输入数据生成等值线或等值面。它是基于阈值的过滤器,可以从标量字段中提取等值线或等值面。vtkContourFilter 的核心功能是根据用户指定的值生成等值线或等值面,并将其表示为多边形网格。

vtkContourFilter 的主要功能

  • 等值线/等值面生成:根据用户指定的等值(通常是标量值)生成等值线或等值面。
  • 多重等值线/等值面:可以同时生成多个等值线或等值面。
  • 支持多种数据类型:可以处理结构化网格、非结构化网格、点云等多种数据类型。
  • 插值:在生成等值线/等值面时,支持插值操作,以确保生成的表面平滑。

vtkContourFilter 的常用方法

  • SetValue(int index, double value):设置第index个等值线的值为value
  • GenerateValues(int numContours, double range[2]):自动生成numContours个等值线,范围在range之间。
  • SetInputData(vtkDataObject input):设置输入数据。
  • Update():更新过滤器并生成输出数据。

vtkContourFilter 的衍生类

vtkContourFilter 是 VTK 中用于生成等值线/等值面的基础类。根据不同的应用场景和需求,VTK 提供了一些专门化的衍生类,这些类继承自 vtkContourFilter,并在其基础上进行了功能扩展或优化。以下是一些常见的 vtkContourFilter 衍生类:

1. vtkMarchingCubes
  • 用途:用于从体积数据(如 CT 或 MRI 扫描数据)中提取等值面。
  • 特点:使用 marching cubes 算法,能够生成高质量的多边形表面。
  • 应用场景:医学图像处理、三维重建。
2. vtkDiscreteMarchingCubes
  • 用途:专门用于处理离散数据(如标签映射数据),生成具有明确标签的等值面。
  • 特点:生成的等值面具有清晰的边界,适用于分割结果的可视化。
  • 应用场景:医学图像分割、地质数据可视化。
3. vtkFlyingEdges3D
  • 用途:用于从三维体积数据中提取等值面。
  • 特点:使用 flying edges 算法,相比于 marching cubes,计算速度更快,生成的表面质量更高。
  • 应用场景:三维体积数据的实时渲染、体绘制。
4. vtkBandedPolyDataContourFilter
  • 用途:用于生成带状等值线。
  • 特点:可以生成多个连续的等值线,通常用于数据的可视化。
  • 应用场景:气象数据中的等压线、地形数据中的等高线。
5. vtkSynchronizedTemplates3D
  • 用途:用于从三维体积数据中生成等值面。
  • 特点:使用同步模板算法,可以生成平滑的等值面。
  • 应用场景:三维体积数据的可视化。
6. vtkSynchronizedTemplatesCutter3D
  • 用途:类似于 vtkSynchronizedTemplates3D,但支持通过其他几何体进行切割。
  • 特点:可以生成与特定几何体相交的等值面。
  • 应用场景:定制化的三维数据可视化。

总结

vtkContourFilter 及其衍生类是 VTK 中用于生成等值线/等值面的核心工具。根据不同的应用场景和需求,用户可以选择合适的类来生成高质量的等值面。例如,vtkMarchingCubes 适用于医学图像中的三维重建,而 vtkFlyingEdges3D 则更适合实时渲染和体绘制。

1. vtkContourFilter

#include <vtkSmartPointer.h>
#include <vtkMarchingCubes.h>
#include <vtkNamedColors.h>
#include <vtkPolyDataMapper.h>
#include <vtkRenderer.h>
#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkSampleFunction.h>
#include <vtkSphere.h>
#include <vtkContourFilter.h>int main(int, char *[])
{vtkSmartPointer<vtkSphere> sphere = vtkSmartPointer<vtkSphere>::New();sphere->SetCenter(0.0, 0.0, 0.0);sphere->SetRadius(1.0);vtkSmartPointer<vtkSampleFunction> sample = vtkSmartPointer<vtkSampleFunction>::New();sample->SetImplicitFunction(sphere);sample->SetModelBounds(-2.5, 2.5, -2.5, 2.5, -2.5, 2.5);sample->SetSampleDimensions(50, 50, 50);sample->SetCapping(true);sample->SetCapValue(100);sample->Update();vtkSmartPointer<vtkContourFilter> contourFilter = vtkSmartPointer<vtkContourFilter>::New();contourFilter->SetInputConnection(sample->GetOutputPort());contourFilter->GenerateValues(5, 0.0, 1.0); // 生成5个等值面contourFilter->Update();vtkSmartPointer<vtkNamedColors> colors = vtkSmartPointer<vtkNamedColors>::New();vtkSmartPointer<vtkPolyDataMapper> mapper = vtkSmartPointer<vtkPolyDataMapper>::New();mapper->SetInputConnection(contourFilter->GetOutputPort());mapper->ScalarVisibilityOff();vtkSmartPointer<vtkActor> actor = vtkSmartPointer<vtkActor>::New();actor->SetMapper(mapper);actor->GetProperty()->SetColor(colors->GetColor3d("MistyRose").GetData());vtkSmartPointer<vtkRenderer> renderer = vtkSmartPointer<vtkRenderer>::New();vtkSmartPointer<vtkRenderWindow> renderWindow = vtkSmartPointer<vtkRenderWindow>::New();renderWindow->AddRenderer(renderer);vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor = vtkSmartPointer<vtkRenderWindowInteractor>::New();renderWindowInteractor->SetRenderWindow(renderWindow);renderer->AddActor(actor);renderer->SetBackground(colors->GetColor3d("SlateGray").GetData());renderWindow->Render();renderWindowInteractor->Start();return 0;
}

解释

  1. 生成隐式几何体:使用 vtkSphere 生成一个球体。
  2. 采样函数:使用 vtkSampleFunction 对球体进行采样,生成一个标量场。
  3. 等值面生成:使用 vtkContourFilter 从采样结果中提取多个等值面。
  4. 渲染:使用 VTK 的渲染管道将等值面显示出来。

2. vtkMarchingCubes

#include <vtkSmartPointer.h>
#include <vtkNamedColors.h>
#include <vtkPolyDataMapper.h>
#include <vtkRenderer.h>
#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkSampleFunction.h>
#include <vtkSphere.h>
#include <vtkMarchingCubes.h>int main(int, char *[])
{vtkSmartPointer<vtkSphere> sphere = vtkSmartPointer<vtkSphere>::New();sphere->SetCenter(0.0, 0.0, 0.0);sphere->SetRadius(1.0);vtkSmartPointer<vtkSampleFunction> sample = vtkSmartPointer<vtkSampleFunction>::New();sample->SetImplicitFunction(sphere);sample->SetModelBounds(-2.5, 2.5, -2.5, 2.5, -2.5, 2.5);sample->SetSampleDimensions(50, 50, 50);sample->SetCapping(true);sample->SetCapValue(100);sample->Update();vtkSmartPointer<vtkMarchingCubes> marchingCubes = vtkSmartPointer<vtkMarchingCubes>::New();marchingCubes->SetInputConnection(sample->GetOutputPort());marchingCubes->SetValue(0, 0.0); // 生成单个等值面marchingCubes->Update();vtkSmartPointer<vtkNamedColors> colors = vtkSmartPointer<vtkNamedColors>::New();vtkSmartPointer<vtkPolyDataMapper> mapper = vtkSmartPointer<vtkPolyDataMapper>::New();mapper->SetInputConnection(marchingCubes->GetOutputPort());mapper->ScalarVisibilityOff();vtkSmartPointer<vtkActor> actor = vtkSmartPointer<vtkActor>::New();actor->SetMapper(mapper);actor->GetProperty()->SetColor(colors->GetColor3d("MistyRose").GetData());vtkSmartPointer<vtkRenderer> renderer = vtkSmartPointer<vtkRenderer>::New();vtkSmartPointer<vtkRenderWindow> renderWindow = vtkSmartPointer<vtkRenderWindow>::New();renderWindow->AddRenderer(renderer);vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor = vtkSmartPointer<vtkRenderWindowInteractor>::New();renderWindowInteractor->SetRenderWindow(renderWindow);renderer->AddActor(actor);renderer->SetBackground(colors->GetColor3d("SlateGray").GetData());renderWindow->Render();renderWindowInteractor->Start();return 0;
}

解释

  1. 生成隐式几何体:使用 vtkSphere 生成一个球体。
  2. 采样函数:使用 vtkSampleFunction 对球体进行采样,生成一个标量场。
  3. 等值面生成:使用 vtkMarchingCubes 从采样结果中提取单个等值面。
  4. 渲染:使用 VTK 的渲染管道将等值面显示出来。

3. vtkDiscreteMarchingCubes

#include <vtkSmartPointer.h>
#include <vtkNamedColors.h>
#include <vtkPolyDataMapper.h>
#include <vtkRenderer.h>
#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkSampleFunction.h>
#include <vtkSphere.h>
#include <vtkDiscreteMarchingCubes.h>int main(int, char *[])
{vtkSmartPointer<vtkSphere> sphere = vtkSmartPointer<vtkSphere>::New();sphere->SetCenter(0.0, 0.0, 0.0);sphere->SetRadius(1.0);vtkSmartPointer<vtkSampleFunction> sample = vtkSmartPointer<vtkSampleFunction>::New();sample->SetImplicitFunction(sphere);sample->SetModelBounds(-2.5, 2.5, -2.5, 2.5, -2.5, 2.5);sample->SetSampleDimensions(50, 50, 50);sample->SetCapping(true);sample->SetCapValue(100);sample->Update();vtkSmartPointer<vtkDiscreteMarchingCubes> discreteMarchingCubes = vtkSmartPointer<vtkDiscreteMarchingCubes>::New();discreteMarchingCubes->SetInputConnection(sample->GetOutputPort());discreteMarchingCubes->SetValue(0, 100); // 生成单个等值面discreteMarchingCubes->Update();vtkSmartPointer<vtkNamedColors> colors = vtkSmartPointer<vtkNamedColors>::New();vtkSmartPointer<vtkPolyDataMapper> mapper = vtkSmartPointer<vtkPolyDataMapper>::New();mapper->SetInputConnection(discreteMarchingCubes->GetOutputPort());mapper->ScalarVisibilityOff();vtkSmartPointer<vtkActor> actor = vtkSmartPointer<vtkActor>::New();actor->SetMapper(mapper);actor->GetProperty()->SetColor(colors->GetColor3d("MistyRose").GetData());vtkSmartPointer<vtkRenderer> renderer = vtkSmartPointer<vtkRenderer>::New();vtkSmartPointer<vtkRenderWindow> renderWindow = vtkSmartPointer<vtkRenderWindow>::New();renderWindow->AddRenderer(renderer);vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor = vtkSmartPointer<vtkRenderWindowInteractor>::New();renderWindowInteractor->SetRenderWindow(renderWindow);renderer->AddActor(actor);renderer->SetBackground(colors->GetColor3d("SlateGray").GetData());renderWindow->Render();renderWindowInteractor->Start();return 0;
}

解释

  1. 生成隐式几何体:使用 vtkSphere 生成一个球体。
  2. 采样函数:使用 vtkSampleFunction 对球体进行采样,生成一个标量场。
  3. 等值面生成:使用 vtkDiscreteMarchingCubes 从采样结果中提取单个离散等值面。
  4. 渲染:使用 VTK 的渲染管道将等值面显示出来。

4. vtkFlyingEdges3D

#include <vtkSmartPointer.h>
#include <vtkNamedColors.h>
#include <vtkPolyDataMapper.h>
#include <vtkRenderer.h>
#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkSampleFunction.h>
#include <vtkSphere.h>
#include <vtkFlyingEdges3D.h>int main(int, char *[])
{vtkSmartPointer<vtkSphere> sphere = vtkSmartPointer<vtkSphere>::New();sphere->SetCenter(0.0, 0.0, 0.0);sphere->SetRadius(1.0);vtkSmartPointer<vtkSampleFunction> sample = vtkSmartPointer<vtkSampleFunction>::New();sample->SetImplicitFunction(sphere);sample->SetModelBounds(-2.5, 2.5, -2.5, 2.5, -2.5, 2.5);sample->SetSampleDimensions(50, 50, 50);sample->SetCapping(true);sample->SetCapValue(100);sample->Update();vtkSmartPointer<vtkFlyingEdges3D> flyingEdges = vtkSmartPointer<vtkFlyingEdges3D>::New();flyingEdges->SetInputConnection(sample->GetOutputPort());flyingEdges->GenerateValues(5, 0.0, 1.0); // 生成5个等值面flyingEdges->Update();vtkSmartPointer<vtkNamedColors> colors = vtkSmartPointer<vtkNamedColors>::New();vtkSmartPointer<vtkPolyDataMapper> mapper = vtkSmartPointer<vtkPolyDataMapper>::New();mapper->SetInputConnection(flyingEdges->GetOutputPort());mapper->ScalarVisibilityOff();vtkSmartPointer<vtkActor> actor = vtkSmartPointer<vtkActor>::New();actor->SetMapper(mapper);actor->GetProperty()->SetColor(colors->GetColor3d("MistyRose").GetData());vtkSmartPointer<vtkRenderer> renderer = vtkSmartPointer<vtkRenderer>::New();vtkSmartPointer<vtkRenderWindow> renderWindow = vtkSmartPointer<vtkRenderWindow>::New();renderWindow->AddRenderer(renderer);vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor = vtkSmartPointer<vtkRenderWindowInteractor>::New();renderWindowInteractor->SetRenderWindow(renderWindow);renderer->AddActor(actor);renderer->SetBackground(colors->GetColor3d("SlateGray").GetData());renderWindow->Render();renderWindowInteractor->Start();return 0;
}

解释

  1. 生成隐式几何体:使用 vtkSphere 生成一个球体。
  2. 采样函数:使用 vtkSampleFunction 对球体进行采样,生成一个标量场。
  3. 等值面生成:使用 vtkFlyingEdges3D 从采样结果中提取多个等值面。
  4. 渲染:使用 VTK 的渲染管道将等值面显示出来。

5. vtkBandedPolyDataContourFilter

#include <vtkSmartPointer.h>
#include <vtkNamedColors.h>
#include <vtkPolyDataMapper.h>
#include <vtkRenderer.h>
#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkSampleFunction.h>
#include <vtkSphere.h>
#include <vtkBandedPolyDataContourFilter.h>int main(int, char *[])
{vtkSmartPointer<vtkSphere> sphere = vtkSmartPointer<vtkSphere>::New();sphere->SetCenter(0.0, 0.0, 0.0);sphere->SetRadius(1.0);vtkSmartPointer<vtkSampleFunction> sample = vtkSmartPointer<vtkSampleFunction>::New();sample->SetImplicitFunction(sphere);sample->SetModelBounds(-2.5, 2.5, -2.5, 2.5, -2.5, 2.5);sample->SetSampleDimensions(50, 50, 50);sample->SetCapping(true);sample->SetCapValue(100);sample->Update();vtkSmartPointer<vtkBandedPolyDataContourFilter> bandedContourFilter = vtkSmartPointer<vtkBandedPolyDataContourFilter>::New();bandedContourFilter->SetInputConnection(sample->GetOutputPort());bandedContourFilter->GenerateValues(5, 0.0, 1.0); // 生成5个带状等值线bandedContourFilter->Update();vtkSmartPointer<vtkNamedColors> colors = vtkSmartPointer<vtkNamedColors>::New();vtkSmartPointer<vtkPolyDataMapper> mapper = vtkSmartPointer<vtkPolyDataMapper>::New();mapper->SetInputConnection(bandedContourFilter->GetOutputPort());mapper->ScalarVisibilityOff();vtkSmartPointer<vtkActor> actor = vtkSmartPointer<vtkActor>::New();actor->SetMapper(mapper);actor->GetProperty()->SetColor(colors->GetColor3d("MistyRose").GetData());vtkSmartPointer<vtkRenderer> renderer = vtkSmartPointer<vtkRenderer>::New();vtkSmartPointer<vtkRenderWindow> renderWindow = vtkSmartPointer<vtkRenderWindow>::New();renderWindow->AddRenderer(renderer);vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor = vtkSmartPointer<vtkRenderWindowInteractor>::New();renderWindowInteractor->SetRenderWindow(renderWindow);renderer->AddActor(actor);renderer->SetBackground(colors->GetColor3d("SlateGray").GetData());renderWindow->Render();renderWindowInteractor->Start();return 0;
}

解释

  1. 生成隐式几何体:使用 vtkSphere 生成一个球体。
  2. 采样函数:使用 vtkSampleFunction 对球体进行采样,生成一个标量场。
  3. 等值线生成:使用 vtkBandedPolyDataContourFilter 从采样结果中提取多个带状等值线。
  4. 渲染:使用 VTK 的渲染管道将等值线显示出来。

6. vtkSynchronizedTemplates3D

#include <vtkSmartPointer.h>
#include <vtkNamedColors.h>
#include <vtkPolyDataMapper.h>
#include <vtkRenderer.h>
#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkSampleFunction.h>
#include <vtkSphere.h>
#include <vtkSynchronizedTemplates3D.h>int main(int, char *[])
{vtkSmartPointer<vtkSphere> sphere = vtkSmartPointer<vtkSphere>::New();sphere->SetCenter(0.0, 0.0, 0.0);sphere->SetRadius(1.0);vtkSmartPointer<vtkSampleFunction> sample = vtkSmartPointer<vtkSampleFunction>::New();sample->SetImplicitFunction(sphere);sample->SetModelBounds(-2.5, 2.5, -2.5, 2.5, -2.5, 2.5);sample->SetSampleDimensions(50, 50, 50);sample->SetCapping(true);sample->SetCapValue(100);sample->Update();vtkSmartPointer<vtkSynchronizedTemplates3D> syncTemplates = vtkSmartPointer<vtkSynchronizedTemplates3D>::New();syncTemplates->SetInputConnection(sample->GetOutputPort());syncTemplates->SetValue(0, 0.0); // 生成单个等值面syncTemplates->Update();vtkSmartPointer<vtkNamedColors> colors = vtkSmartPointer<vtkNamedColors>::New();vtkSmartPointer<vtkPolyDataMapper> mapper = vtkSmartPointer<vtkPolyDataMapper>::New();mapper->SetInputConnection(syncTemplates->GetOutputPort());mapper->ScalarVisibilityOff();vtkSmartPointer<vtkActor> actor = vtkSmartPointer<vtkActor>::New();actor->SetMapper(mapper);actor->GetProperty()->SetColor(colors->GetColor3d("MistyRose").GetData());vtkSmartPointer<vtkRenderer> renderer = vtkSmartPointer<vtkRenderer>::New();vtkSmartPointer<vtkRenderWindow> renderWindow = vtkSmartPointer<vtkRenderWindow>::New();renderWindow->AddRenderer(renderer);vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor = vtkSmartPointer<vtkRenderWindowInteractor>::New();renderWindowInteractor->SetRenderWindow(renderWindow);renderer->AddActor(actor);renderer->SetBackground(colors->GetColor3d("SlateGray").GetData());renderWindow->Render();renderWindowInteractor->Start();return 0;
}

解释

  1. 生成隐式几何体:使用 vtkSphere 生成一个球体。
  2. 采样函数:使用 vtkSampleFunction 对球体进行采样,生成一个标量场。
  3. 等值面生成:使用 vtkSynchronizedTemplates3D 从采样结果中提取单个等值面。
  4. 渲染:使用 VTK 的渲染管道将等值面显示出来。

这些示例代码展示了如何使用 vtkContourFilter 及其衍生类来生成等值线或等值面,并将其渲染出来。每个类都有其特定的应用场景和优势,可以根据具体需求选择合适的类。

 

http://www.dinnco.com/news/74707.html

相关文章:

  • zblog做企业网站友情链接网
  • 晋城网站建设深圳优化公司排名
  • 如何在网站做淘宝页面西安百度竞价外包
  • 商务网站创建设计方案六种常见的网站类型
  • 江门网站免费制作自助建站免费搭建个人网站
  • 太原正规的做定制网站制作十大引擎网址
  • 杭州维利国德网站建设案例免费卖货平台
  • 怎么做英文的网站首页最近的时事新闻
  • 门户网站的基本特征有潍坊住房公积金管理中心
  • 自己的网站怎么做app吗百度官网认证价格
  • 最好的网站建设团队seo营销策划
  • 阿里云企业网站建设教程信息流优化师是干什么的
  • 百容千域可以免费做网站吗厦门站长优化工具
  • 企业网站的基本形式不包括邀请推广app
  • 简单网站开发百度怎么做推广
  • 淘宝网页版看直播网站seo推广员招聘
  • 长沙有做网站的吗网络服务商主要包括
  • ih5网站制作平台南京搜索引擎推广优化
  • 网站百度seo推广怎么做青岛网站建设维护
  • 网络营销的认知搜索引擎优化的报告
  • 长春市建设信息网站b站推广引流最佳方法
  • 公司微网站怎么做的万能识图
  • 上海网站制作公司是什么海曙seo关键词优化方案
  • 兴国网站建设信息流广告代运营
  • 做高端企业网站北京网站托管
  • 网站建设步骤 教 程产品如何做网络推广
  • 用asp.net 做网站西安网约车平台
  • 智慧校园系统平台搜索引擎优化与关键词的关系
  • 服务专业的品牌建站公司网络广告设计
  • 东莞凤岗做网站深圳网络营销网站设计