C++ VTK鼠标网格表面绘制曲线

news2024/11/25 12:32:13

 程序示例精选

C++ VTK鼠标表面绘制曲线

如需安装运行环境或远程调试,见文章底部微信名片,由专业技术人员远程协助!

前言

C++ VTK鼠标表面绘制曲线,功能完善,代码整洁,规则,易读。


文章目录

        一、所需工具软件

        二、使用步骤

                1. 主要代码

                2. 运行结果

         三在线协助


一、所需工具软件

          1. Visual Studio以上

          2. VTK库

二、使用步骤

1.主要代码

代码如下(示例):

#include <vtkActor.h>
#include <vtkCommand.h>
#include <vtkContourWidget.h>
#include <vtkNamedColors.h>
#include <vtkNew.h>
#include <vtkOrientedGlyphContourRepresentation.h>
#include <vtkPolyDataCollection.h>
#include <vtkPolyDataMapper.h>
#include <vtkPolygonalSurfacePointPlacer.h>
#include <vtkProperty.h>

namespace {

	class MyCallback : public vtkCommand
	{
	public:
		static MyCallback* New()
		{
			return new MyCallback;
		}
		MyCallback()
		{
		}

		virtual void Execute(vtkObject* caller, unsigned long, void*)
		{
			vtkContourWidget* contourWidget =
				reinterpret_cast<vtkContourWidget*>(caller);
			vtkContourRepresentation* rep = static_cast<vtkContourRepresentation*>(

		}

		void SetSphereSource(vtkSmartPointer<vtkSphereSource> sphere)
		{
			this->SphereSource = sphere;
		}

	private:
		vtkSmartPointer<vtkSphereSource> SphereSource;
	};

} // namespace

int main(int, char*[])
{
	vtkNew<vtkNamedColors> colors;

	vtkNew<vtkSphereSource> sphereSource;
	sphereSource->SetRadius(5);
	sphereSource->Update();

	vtkNew<vtkPolyDataMapper> mapper;
	mapper->SetInputConnection(sphereSource->GetOutputPort());

	vtkNew<vtkActor> actor;
	actor->SetMapper(mapper);
	actor->GetProperty()->SetColor(colors->GetColor3d("MistyRose").GetData());

	// Create the RenderWindow, Renderer
	vtkNew<vtkRenderer> renderer;
	vtkNew<vtkRenderWindow> renderWindow;
	renderWindow->AddRenderer(renderer);
	renderWindow->SetWindowName("PolygonalSurfacePointPlacer");

	vtkNew<vtkRenderWindowInteractor> interactor;
	interactor->SetRenderWindow(renderWindow);

	renderer->AddActor(actor);
	renderer->SetBackground(colors->GetColor3d("CadetBlue").GetData());

	vtkNew<vtkContourWidget> contourWidget;
	contourWidget->SetInteractor(interactor);

	vtkOrientedGlyphContourRepresentation* rep =
		dynamic_cast<vtkOrientedGlyphContourRepresentation*>(
			contourWidget->GetRepresentation());

	vtkNew<vtkPolygonalSurfacePointPlacer> pointPlacer;
	pointPlacer->AddProp(actor);
	pointPlacer->GetPolys()->AddItem(sphereSource->GetOutput());

	rep->GetLinesProperty()->SetColor(colors->GetColor3d("Crimson").GetData());
	rep->GetLinesProperty()->SetLineWidth(3.0);
	rep->SetPointPlacer(pointPlacer);

	contourWidget->EnabledOn();
	renderer->ResetCamera();
	renderWindow->Render();

	interactor->Start();

	return EXIT_SUCCESS;
}

4.运行结果如下: 

 

 

三、在线协助: 

如需安装运行环境或远程调试,见文章底部微信名片,由专业技术人员远程协助!

我的主页:https://blog.csdn.net/alicema1111?type=blog

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/89233.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于Android的招聘求职网站的设计与实现

毕业设计 基于Android的招聘求职网站的设计与实现 1&#xff0e;课题意义及目标 在二十一世纪求职方式跟以前是不同的&#xff0c;与在各个用人单位和招聘会上寻找理想的工作&#xff0c;基于安卓的招聘系统能够提供最好的最丰富及时的招聘信息。。 通过对该系统的研究设计…

【人工智能与机器学习】——决策树与集成学习(学习笔记)

&#x1f4d6; 前言&#xff1a;决策树&#xff08;Decision Tree&#xff09;是一种通过对历史数据进行测算&#xff0c;实现对新数据进行分类和预测的算法。机器学习中&#xff0c;决策树是一个预测模型&#xff0c;代表的是对象属性与对象值之间的一种映射关系。该算法由于逻…

django计算机毕业设计基于安卓Android的移动电商平台系统APP-商品购物商城app

项目介绍 网络的广泛应用给生活带来了十分的便利。所以把移动电商平台与现在网络相结合,利用python技术建设移动电商平台APP,实现移动电商平台的信息化。则对于进一步提高移动电商平台发展,丰富移动电商平台经验能起到不少的促进作用。 移动电商平台APP能够通过互联网得到广泛的…

如何向gitlab发布的附件里上传文件

gitlab 发布后在附件里会有打包好的源码&#xff0c;类似下图 笔者想把构建好的文件也打包放在这个附件里&#xff0c;经过研究可行&#xff0c;步骤分享如下 注&#xff1a;笔者用的gitlab版本为12.10.3 创建Access Token 登录gitlab,点击右上角图像&#xff0c;点击Settin…

Linux基本命令(3)

Linux基本命令(3) &#x1f4df;作者主页&#xff1a;慢热的陕西人 &#x1f334;专栏链接&#xff1a;Linux &#x1f4e3;欢迎各位大佬&#x1f44d;点赞&#x1f525;关注&#x1f693;收藏&#xff0c;&#x1f349;留言 本博客主要讲解了最后一部分常用的Linux指令和一些热…

1年时间,从小公司到美团测试开发,我做对了这些事情....

&#x1f4cc; 博客主页&#xff1a; 程序员二黑 &#x1f4cc; 专注于软件测试领域相关技术实践和思考&#xff0c;持续分享自动化软件测试开发干货知识&#xff01; &#x1f4cc; 公号同名&#xff0c;欢迎加入我的测试交流群&#xff0c;我们一起交流学习&#xff01; 我的…

优化cv2.findContours()函数提取的目标边界点,使语义分割进行远监督辅助标注

优化cv2.findContours()函数提取的目标边界点 假设我们想要提取的目标边界长这样&#xff1a; 我们先使用以下代码查看效果 import cv2 import numpy as np import osif __name__ __main__:# 图像可以选择自己的image_filepath ./landslide/image/20221129112713.png# 读取…

Java并发和多线程编程学习(二) Java内存模型

并发编程中需要处理的两个重要问题是线程之间如何通信以及线程之间如何同步&#xff0c;Java的并发采用的是共享内存模型&#xff0c;且线程之间的通信总是隐式执行&#xff0c;所以需要我们深入学习从而避免复杂的内存可见性问题 内存模型的抽象结构 在Java中&#xff0c;所…

java计算机毕业设计ssm基于H5的音乐播放管理系统

项目介绍 该系统是基于H5,使用Vue、JavaScript、CSS技术开发而成。系统服务器使用Tomcat,利用MySQL存储数据、用JDBC实现数据的访问。管理员在系统部署阶段将所有用户对应权限进行分配。正式投入使用时,用户通过登录模块进入系统。根据权限控制管理,每个用户角色的操作界面也有…

【轻量级开源ROS 的机器人设备(4)】--(2)通信实现

前文链接 【轻量级开源ROS 的机器人设备&#xff08;4&#xff09;】--&#xff08;1&#xff09;通信模块_无水先生的博客-CSDN博客 三、 通信概要 概述 ROS 的通信层是 ros_comm 堆栈的一部分&#xff0c;遵循发布/订阅范式&#xff0c;如图 2.2 所示。网络&#xff0c;也称…

(设计模式) (李建忠 C++) 23种设计模式

文章目录前言组件协作模板方法 Template Method动机模式定义结构代码情景版本1版本2变化原理要点总结个人小结策略模式 Strategy动机模式定义结构代码情景版本1版本2要点总结个人小结观察者模式 Observer动机模式定义结构代码场景版本1版本2版本2要点总结个人小结单一职责装饰模…

斐波那契问题——上台阶问题

题目&#xff1a; 给定整数N&#xff0c;代表台阶数&#xff0c;一次可以跨2个或者1个台阶&#xff0c;返回有多少种走法。 举例&#xff1a; N3&#xff0c;可以三次跨一个台阶&#xff0c;也可以先跨2再跨1&#xff0c;也可以先跨1再跨2&#xff0c;共三种走法。 思路&…

上海还有哪些比较好的IB学校?

今天我们就一起来盘点沪上几所办学成绩比较好的IB学校&#xff0c;快来看看哪所学校才是孩子的最好选择&#xff01; Promise 上海民办平和学校 上海市民办平和学校&#xff08;Shanghai Pinghe School&#xff09;是由上海金桥&#xff08;集团&#xff09;有限公司于1996年9月…

常用Java接单平台一览

不少主攻Java的程序员兄弟除了工作&#xff0c;还会在空闲时间选择接单来增加自己的收入&#xff1b;对于那些生活在二三线的程序员兄弟们&#xff0c;通过接单&#xff0c;来获得与一线城市对等的收入。具体该怎么做&#xff0c;且听我娓娓道来。接下来干货满满&#xff0c;先…

前端—新增的嵌入多媒体元素与交互性元素

新增的嵌入多媒体元素与交互性元素 新增的嵌入多媒体元素有video和audio元素&#xff0c;分别是用来插入视频和声音的。值得注意的是&#xff0c;可以在开始标签和结束标签之间放置文本内容&#xff0c;这样旧版本的浏览器就可以显示出不支持该标签的信息。例如下面的代码。HT…

Qt Visual Studio添加Qt ui和编译注意事项

文章目录背景新建Widget 对象UIC程序生成ui_xxxx.h文件编译出错设置QtWidgetsTestClass.h的属性总结背景 工程中需要新的界面VS中新建Qt的ui文件&#xff0c;然后需要生成对应的.cpp 和 .h 文件 新建Widget 对象 生成对应的三个文件.ui, xxx. cpp, xxx.h 但是此时在QtWidget…

IDEA报错问题:If you already have a 64-bit JDK installed 解决方法【杭州多测师_王sir】【杭州多测师】...

启动IDEA的时候突然报错&#xff1a; 第一步&#xff1a;首先进入到C:\Users\用户名\.IdeaIC2019.3\config这个目录下面找到idea64.exe.vmoptions文件 第二步&#xff1a;通过notepad打开&#xff0c;进入编辑 第三步&#xff1a;然后修改配置如下&#xff1a;把Xms和Xmx的参数…

[MySQL]-主从同步实战

[MySQL]-主从同步实战 森格 | 2022年12月14日 本文主要为在平时work中遇到的主从同步上的问题的处理&#xff0c;对其进行巩固总结。 一、场景介绍 ​ 在一个风和日丽的下午4点半&#xff0c;突然就收到一个主从同步失败的提示&#xff0c;三两下打开从库一看&#xff0c;好嘛…

Stimulsoft Reports 2023.1.1 Crack 根据自身需求选择

Stimulsoft 专门从事 Microsoft .NET Framework 组件的开发。客户满意是公司的首要任务&#xff0c;因此它旨在生产顶级质量的软件。应用程序开发并不总是那么容易&#xff0c;但 Stimulsoft 尽最大努力帮助开发人员将当今市场上最先进的技术整合到他们的应用程序中 特征 Razor…

老照片修复怎么修?这三个方法可以让你实现修复操作

相信大家在家里翻看以前的照片时&#xff0c;会发现有部分照片颜色已经泛黄&#xff0c;内容也跟着变得有些模糊不清了&#xff0c;那当我们遇到这种情况的时候&#xff0c;应该怎么办呢&#xff1f;别担心&#xff0c;今天就来教大家几个实用的方法&#xff0c;让大家学会老照…