首页 > 其他分享 >VTK 显示3D网格线

VTK 显示3D网格线

时间:2023-05-19 17:58:02浏览次数:44  
标签:VTK sphereMapper 网格线 colors renderer sphereActor 3D vtkNew

VTK9.1.0在Windows10+VS2019+Qt 5.15.2环境下编译安装的Qt例子中,想显示球体表面的网格线。

通过vtkExtractEdges来实现显示全部网格线

    QSurfaceFormat::setDefaultFormat(QVTKOpenGLNativeWidget::defaultFormat());

    vtkNew<vtkRenderer> renderer;
    vtkNew<vtkNamedColors> colors;

    vtkNew<vtkSphereSource> sphereSource;

    {
        //球体
        vtkNew<vtkPolyDataMapper> sphereMapper;
        sphereMapper->SetInputConnection(sphereSource->GetOutputPort());

        vtkNew<vtkActor> sphereActor;
        sphereActor->SetMapper(sphereMapper);
        sphereActor->GetProperty()->SetColor(colors->GetColor4d("Tomato").GetData());

        renderer->AddActor(sphereActor);
    }

    {
        //网格线
        vtkNew<vtkExtractEdges> extractEdges;
        extractEdges->SetInputConnection(sphereSource->GetOutputPort());

        vtkNew<vtkPolyDataMapper> sphereMapper;
        sphereMapper->SetInputConnection(extractEdges->GetOutputPort());
        vtkNew<vtkActor> sphereActor;
        sphereActor->SetMapper(sphereMapper);
        sphereActor->GetProperty()->SetColor(colors->GetColor4d("Black").GetData());

        renderer->AddActor(sphereActor);
    }

    renderer->SetBackground(colors->GetColor3d("SteelBlue").GetData());
    vtkNew<vtkGenericOpenGLRenderWindow> renderWindow;
    renderWindow->AddRenderer(renderer);
    renderWindow->SetWindowName("RenderWindowNoUIFile");
    ui.vtk_main->setRenderWindow(renderWindow);

如下图所示:

还可以通过vtkFeatureEdges来显示特定的网格线:

1.边界(boundary):只被一个多边形使用的边,或者直线单元;
2.非流行(non-manifold):被三个以上的多边形共用的边;
3.特征边(feature edges):被两个三角形使用,并且两个三角形之间的夹角大于特征角度(可自行设置此角度);
4.流行边(manifold edges):只被两个多边形使用的边。

 

标签:VTK,sphereMapper,网格线,colors,renderer,sphereActor,3D,vtkNew
From: https://www.cnblogs.com/SamFang/p/17415915.html

相关文章

  • VTK 9.2 Qt 5.14 安装及错误处理
    参考VTK9.1.0在Windows10+VS2019+Qt5.15.2环境下编译安装以及VTK应用于QT_vtk-qt安装包_isongxw的博客-CSDN博客安装注意:编译release和debug,通过切换配置为release和debug,文件都是在cmake的CMAKE_INSTALL_PREFIX指定的文件夹,需要编译完一种后,把这个文件夹改名(比如debug配置,则改......
  • 矩池云教程|体验 OpenAI 最近推出的 3D 生成模型 Shap-E!
    Shap-E是由OpenAI最近推出的3D生成模型,使用者可以通过简单的文字或图像进行三维模型的生成,OpenAI认为相比于点云的生成模型Point-E,Shap-E的收敛更快。本文将展示如何在矩池云上体验3D模型生成。Shap-E:https://github.com/openai/shap-e矩池云:https://matpool.com/1、安装......
  • 展会回顾 | 2023元宇宙生态博览会圆满落幕,3DCAT荣获“元宇宙交互技术奖”
    2023年5月10日-5月12日,一场涵盖了元宇宙终端头显、数字文娱、数字艺术、数字运动、数字多媒体展陈设计、数字展厅展馆、科技文旅、夜游演艺、沉浸式KTV/酒吧等多个领域的元宇宙商业盛会——2023第2届世界元宇宙生态博览会在广州广交会展馆A区3.2馆、4.2馆掀开帷幕。本届博览会展览......
  • 【CF843D】Dynamic Shortest Path(Dijkstra)
    Description一张带权有向图,qq次操作:1.vv询问11到vv的最短路2.c l1 l2…lcc l1......
  • 《3D编程模式》写书-第6次记录
    大家好,这段时间我完成了对初稿的第二轮修改,已经把稿子提交给编辑了这里是所有的的写书记录:《3D编程模式》写书记录本轮修改主要进行了下面的修改:修改UML描述增加依赖关系角色之间的关系中增加x对x的明确描述修改分析角色“总体来看”加上用户这个部分,使其与UML......
  • generate a 3D chart in Python using the CSV data
    Here's an example of how you could use Matplotlib to create a 3D scatter plot from your CSV data:   importpandasaspdimportmatplotlib.pyplotaspltfrommpl_toolkits.mplot3dimportAxes3D#LoadtheCSVdataintoaPand......
  • blender 3D 汽车模型下载
    前言因为之前需要模拟摄像头拍摄汽车车牌,从各种途径下载了一些blender3D汽车模型,现将模型分享出来,如有需要,直接去最后面下载地址下载即可目前已经车型40多款车型图70年代Porsche911汽车2010Jeep牧马人吉普车2017奥迪AudiR8V10Plus跑车2017款福特F450皮卡车2019......
  • blender 3D 建模仿真摄像头视角
    前言摄像头的视角模拟,可以在产品概念设计阶段提供比较直观的视觉效果,通过将模型与实际环境进行校准,基本上可以通过模型来确定摄像头需要FOV,焦距,景深和安装位置及角度等参数。由于工作需要,第一次自己进行3D建模,以前无任何建模基础。对于新手而言,我觉得blender软件还是非常容易入......
  • 永磁式开关磁链3D电机性能及其波形
    永磁式开关磁链3D电机性能及其波形ID:79999661689128315......
  • 基于显扬科技3D视觉相机的医疗试管分拣系统
    Part.1 行业现状医疗试管分拣是医疗行业中的一个重要环节,指将医疗实验室或生物技术研究中的试管按照一定的规则进行分拣,并对试管的类型、位置、数量等信息进行识别和管理。随着医疗技术的不断发展和诊断治疗的精细化,医疗试管分拣的需求也不断增加。传统的试管分拣是由人工操作来完......