Linux中使用vtk的测试例子

VTK学习-vtkCamera 阅读详情

vtk是一个开源的图形开发工具库,详细信息可以百度。
安装ROS的时候发现装了vtk6.2,那就编个小程序来试一下

#include <vtkSmartPointer.h>
// For the rendering pipeline setup:
#include <vtkConeSource.h>
#include <vtkPolyDataMapper.h>
#include <vtkActor.h>
#include <vtkRenderer.h>
#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkInteractorStyleTrackballCamera.h>
// For vtkBoxWidget:
#include <vtkBoxWidget.h>
#include <vtkCommand.h>
#include <vtkTransform.h>

#include <vtkCamera.h>
#include <vtkPolyData.h>
#include <vtkPlane.h>

class vtkMyCallback : public vtkCommand
{
public:
	static vtkMyCallback *New()
	{
		return new vtkMyCallback;
	}
	virtual void Execute( vtkObject *caller, unsigned long, void* )
	{
    // Here we use the vtkBoxWidget to transform the underlying coneActor
    // (by manipulating its transformation matrix).
		vtkSmartPointer<vtkTransform> t = vtkSmartPointer<vtkTransform>::New();
		vtkBoxWidget *widget = reinterpret_cast<vtkBoxWidget*>(caller);
		widget->GetTransform( t );
		widget->GetProp3D()->SetUserTransform( t );
		vtkSmartPointer<vtkPolyData> pd = vtkSmartPointer<vtkPolyData>::New();
		widget->GetPolyData(pd);
		for(int i=0;i<8;i++)
		{
			printf("point %d: %.4f,%.4f,%.4f;\n",i,pd->GetPoint(i)[0],pd->GetPoint(i)[1],pd->GetPoint(i)[2]);
		}
	}
};

int main( int vtkNotUsed( argc ), char* vtkNotUsed( argv )[] )
{
	vtkSmartPointer<vtkConeSource> cone = vtkSmartPointer<vtkConeSource>::New();
	vtkSmartPointer<vtkPolyDataMapper> coneMapper = vtkSmartPointer<vtkPolyDataMapper>::New();
	coneMapper->SetInputConnection( cone->GetOutputPort() );

	vtkSmartPointer<vtkActor> coneActor = vtkSmartPointer<vtkActor>::New();
	coneActor->SetMapper( coneMapper );

	vtkSmartPointer<vtkCamera> cameraX = vtkSmartPointer<vtkCamera>::New();
	cameraX->SetParallelProjection(1);
	vtkSmartPointer<vtkRenderer> renderer = vtkSmartPointer<vtkRenderer>::New();
	renderer->AddActor( coneActor );
	renderer->SetBackground( 0.1, 0.2, 0.4 );
	renderer->SetActiveCamera(cameraX);

	vtkSmartPointer<vtkRenderWindow> window = vtkSmartPointer<vtkRenderWindow>::New();
	window->AddRenderer( renderer );
	window->SetSize( 300, 300 );

	vtkSmartPointer<vtkRenderWindowInteractor> interactor = vtkSmartPointer<vtkRenderWindowInteractor>::New();
	interactor->SetRenderWindow( window );

	vtkSmartPointer<vtkInteractorStyleTrackballCamera> style = vtkSmartPointer<vtkInteractorStyleTrackballCamera>::New();
	interactor->SetInteractorStyle( style );

	vtkSmartPointer<vtkBoxWidget> boxWidget = vtkSmartPointer<vtkBoxWidget>::New();
	boxWidget->SetInteractor( interactor );

	vtkSmartPointer<vtkPolyData> pd = vtkSmartPointer<vtkPolyData>::New();

	boxWidget->SetProp3D( coneActor );
	boxWidget->SetPlaceFactor( 1.25 ); // Make the box 1.25x larger than the actor
	boxWidget->RotationEnabledOff();
	boxWidget->PlaceWidget();
	boxWidget->GetPolyData(pd);
	boxWidget->On();
	interactor->Initialize();
	printf("the number of points: %d;\n",pd->GetNumberOfPoints());

	vtkSmartPointer<vtkMyCallback> callback = vtkSmartPointer<vtkMyCallback>::New();
	boxWidget->AddObserver( vtkCommand::InteractionEvent, callback );

	interactor->Start();

	return EXIT_SUCCESS;
}

给出CMakeLists.txt文件内容

cmake_minimum_required(VERSION 2.8)

PROJECT(test)

find_package(VTK REQUIRED)
include(${VTK_USE_FILE})

add_executable(test test.cpp )
target_link_libraries(test ${VTK_LIBRARIES})

编译运行可以看到如下结果,一个三维的交互操作。

只是安装了ROS后在配置项中发现了vtk,可能rviz的可视化界面是用vtk编写的,所以在安装的时候配置好了相关的库,vtk便是其中一个。

总之,今后可以在Linux的ROS中用vtk开发相关应用实现可视化操作了。


这里写图片描述

VTK笔记-相机vtkCamera vtk相机 VTK是用vtkCamera类来表示三维渲染场景中的相机。vtkCamera负责把三维场景投影到二维平面,如屏幕、图像等。 VTK中的相机的使用示意图如下: 与相机投影相关的因素主要有: 相机位置:即相机所在的位置,用方法vtkCamera::SetPosition()设置。 相机焦点:用方法vtkCamera::SetFocusPoint()设置,默认的焦点位置在世界坐标系的原点。 朝上方向:即哪个方向为相机朝上的方向。就好比我们直立看东西,方向为头朝上,看到的东西也是直立的,如果我们倒立 阅读详情

相关推荐

vtk在linux下的安装(12月8日更新)

运行环境: ubuntu12.04 LTS, 64bit 1. 安装编译工具

al5hn的专栏 6951

Linux配置VTK+QT

本程序所需要的是PCL1.11.0+VTK8.2.0+QT5.14.2+Ubuntu18.04本文默认已经安装好Qt5.14.2。

qq_45339188的博客 1593

VTK编译

在开始编译 VTK 之前,请确保您的 Linux 系统已安装以下依赖项:bash。

深之JohnChen的专栏 1730

VTK测试程序

#include &lt;vtkSphereSource.h&gt; #include &lt;vtkPolyData.h&gt; #include &lt;vtkSmartPointer.h&gt; #include &lt;vtkPolyDataMapper.h&gt; #include &lt;vtkActor.h&gt; #include &lt;vtkRenderWindo...

CSDN1HAO的博客 1442

Android 13 Hotseat定制化修改——001 hotseat布局方向

一.背景由于需求是需要自定义修改Hotseat,所以此篇文章是记录如何自定义修改hotseat的,应该可以覆盖大部分场景,修改点有修改hotseat布局方向,hotseat图标数量,hotseat图标大小,hotseat布局位置,hotseat图标禁止形成文件夹,hotseat图标禁止移动到Launcher...

Java_fenxiang的博客 1098

瑞萨RA6M5驱动ST7735屏幕避坑指南:从软件SPI到显示汉字与图形的完整流程

本文详细介绍了瑞萨RA6M5单片机驱动ST7735屏幕的完整流程,涵盖硬件连接、软件SPI控制、汉字显示及图形绘制优化等关键步骤。通过避坑指南和实用代码示例,帮助开发者解决屏幕初始化、时序控制、字库移植等常见问题,实现高效稳定的显示效果。

weixin_28705087的博客 272

VTK学习笔记(二十二)vtk编译测试所有官方程序

VTK学习笔记(二十二)vtk编译测试所有官方程序 学习VTK时,每次都要找到单个测试程序,一个一个的编译测试比较浪费时间。 c++ 测试程序:https://kitware.github.io/vtk-examples/site/Cxx/ python测试程序:https://kitware.github.io/vtk-examples/site/Python/ 每次搜到需要的测试程序,要么单独拷贝下来在python环境中执行,要么在c++环境下编译运行。而且还经常为找不到测试用例着急。 其实还可以有其他

juluwangriyue的博客 2053

【C++】lambda表达式

本篇文章我们要学习的是lambda表达式,它是C++11新增的一种特别方便的语法,相较于之前的函数指针以及仿函数都方便了不少,下面就让我们一起来学习吧。

malloc不出对象的博客 2619

VTK

一、简要介绍 VTK(Visualization Toolkit)是一款用于二次开发的可视化工具包,在世界上同类产品中最有影响,基本上可以作为可视化领域的规范。 VTK的历史和现状: 1993年12月,GE的Will Schroeder, Ken Martin两个人写了一本书: The Visualization Toolkit: An Object-Oriented Approach to 3D

littlening的专栏 1万+

Cursor聊天记录迁移工具:实现跨设备AI对话同步与备份

在软件开发中,数据持久化与迁移是常见需求,尤其当工具依赖本地存储时。SQLite作为轻量级关系型数据库,因其嵌入式、零配置特性,常被用于存储应用状态与用户数据。其WAL(预写式日志)模式提升了并发性能,但也增加了数据操作复杂性。通过命令行工具与JSON序列化技术,可以实现结构化数据的提取、转换与安全迁移,这对于保障开发资产的连续性与可移植性具有重要价值。例如,在AI辅助编程场景下,开发者与AI的对话记录包含关键的问题分析、解决方案与决策逻辑,是重要的上下文资产。cursor-chat-transfer工具正

weixin_42551967的博客 526

数据分析案例-电脑笔记本价格数据可视化分析3

本文基于Kaggle笔记本数据集(1303条记录,13个变量),使用Python进行数据可视化分析。通过自定义函数预处理了CPU频率、内存类型等关键特征,利用Seaborn和Matplotlib绘制了品牌分布、内存类型占比、价格影响因素等可视化图表。研究发现:1)Dell和Lenovo市场份额最大;2)SSD是主流存储类型;3)高RAM配置普遍采用SSD;4)Intel处理器占据绝对优势。分析揭示了不同品牌、配置与价格的关系,为消费者购买决策和市场策略制定提供了数据支持。

m0_64336780的博客 1万+

Ubuntu安装VTK

转自:https://blog.csdn.net/dell5200/article/details/81142951 1.Download the last VTK version: http://www.vtk.org/download/ 2.安装ccmake 和 VTK 的依赖项: sudo apt-get install cmake-curses-gui sudo apt-get in...

u012370185的博客 1万+

Claude桌面端安装失败?Retrying无限重试终极解决方案(亲测有效)

Claude桌面端安装卡在Retrying并非网络问题,而是安装器下载源异常导致。本文提供已验证方案:一条命令即可解决问题🚀

XiaoqiangClub的博客 2307

linux查看vtk版本,vtk在linux下的安装(12月8日更新)

安装前准备运行环境:ubuntu14.04 LTS, 64bit //本人在ubuntu 14.10下安装失败安装版本:vtk6.1.0.tar.gz vtkdata6.1.0.tar.gz编译器:g++$ sudo apt-cache search gcc*g++以保证能搜索到g++,然后$ sudo apt-get install g++make工具$ sudo apt-get instal...

weixin_39779537的博客 3071

深入剖析Zynq AMP模式下CPU1中断响应机制:从原理到创新实践

在异构计算领域,Zynq-7000系列SoC的AMP(Asymmetric Multiprocessing)模式堪称多核编程的瑞士军刀。独立运行环境:CPU0运行Linux,CPU1运行FreeRTOS或裸机程序硬件资源独占:CPU0管理DDR,CPU1使用OCM(片上内存)中断隔离:默认所有中断路由到CPU0这种架构非常适合需要实时响应的工业控制系统——比如用CPU0处理网络通信,CPU1负责电机控制。AMP模式下中断路由的底层原理多维度性能优化技巧工业级可靠性的实现方案。

QQ_778132974的博客 484

Google Gemini 模型本地可视化

Google近期发布了Gemini模型,而且开放了Gemini Pro API,Gemini Pro 可免费使用!Gemini Pro支持全球180个国家的38种语言,目前接受文本、图片作为输入并生成文本作为输出。Gemini Pro的表现超越了其他同类模型,当前版本配备了 32K 文本上下文窗口,可免费使用,且其定价将十分有竞争力。Gemini Pro具备丰富的功能:函数调用、数据嵌入、语义检索、自定义知识嵌入以及聊天功能。

HJ_blog 1240

centos linux VTK 安装细则

vtk篇:1。在http://www.vtk.org/VTK/resources/software.html中下好Source and Data两个包2。新建一个文件夹vtk,把上面两个包解压缩到此处,同时再建一个文件夹bin.3。在终端下cd到这个bin目录下4。运行  ccmake ../VTK    (这个VTK就是刚才从Source中解压出来的,文件名最好不要变)根据提示进行操作,一般默认

jajen的专栏 4344

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Ubuntu20.04上,VTK9.3在QT5上的环境配置与开发测试

项目需要,需要在Ubuntu上,基于VTK进行QT界面的开发,其中,VTK的版本为9.3,QT具体为5.12.0。然而,现有大部分为基于VTK8.2的QT上位机的界面开发,关于VTK9.3的环境配置与使用方法很少,VTK9.3在VTK8.2上的改动又很多,无法基于VTK8.2的教程复线VTK9.3,因此,这里记录一下环境配置与测试开发过程,以供后续参考。

qq_38606680的博客 3152

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Windows下VTK 源码编译(For Qt PCL)

虽然我们在windows下安装PCL的时候就已经安装了VTK,由于跟着PCL安装的VTK是没有和QT联合编译的,所以在使用PCL和QT做点云可视化界面的时候是无法使用QT的插件QVTKWidget。 VTK 源码下载 https://gitlab.kitware.com/vtk/vtk/-/tags 我这里的环境是Win10 Visual Studio:2017 Community PCL :1.9.1 VTK:8.1.2 CMake:3.17.3 这里我是将原来的VTK版本备份了,然后删掉

Learning by doing 2110

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

windows和linux下VTK7.0.0的配置

VS2013下VTK7.0.0的配置

Hello World 7341

vtk的简单介绍和安装

一、简要介绍 VTK(Visualization Toolkit)是一款用于二次开发的可视化工具包,在世界上同类产品中最有影响,基本上可以作为可视化领域的规范。 VTK的历史和现状: 1993年12月,GE的Will Schroeder, Ken Martin两个人写了一本书: The Visualization Toolkit: An Object-Oriented Approach

colorfulweiwei的专栏 1768

ubuntu16.04下安装VTK7.11+PCL1.9.1

ubuntu16.04下安装VTK7.11+PCL1.9.1 先安装VTK后编译PCL 之前按照https://blog.csdn.net/dantengc/article/details/78446600的方法,跑demo的时候出现了找不到visualization头文件的错误,后来查找资料,可能是VTK的问题。 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何...

qq_29761791的博客 3924

Linux下编译vtk的java版本,vtk在linux下的安裝(12月8日更新)

安裝前准備運行環境:ubuntu14.04 LTS, 64bit //本人在ubuntu 14.10下安裝失敗安裝版本:vtk6.1.0.tar.gz vtkdata6.1.0.tar.gz編譯器:g++$ sudo apt-cache search gcc*g++以保證能搜索到g++,然后$ sudo apt-get install g++make工具$ sudo apt-get instal...

weixin_39861669的博客 328

linux环境下打包c++的Qt应用程序装载vtk和itk(qmake方式)

linux环境下打包c++的Qt应用程序并装载vtk

CEVERY的博客 1623

Ubuntu14.04+VTK8.1.1+PCL1.8.1安装及测试

Ubuntu14.04+VTK8.1.1+PCL1.8.1安装 1.VTK安装 1.1 下载及解压 下载VTK(VTK-8.1.1.zip)及数据(VTKData-8.1.1.zip) 解压VTK: unzip VTK-8.1.1.zip unzip VTKData-8.1.1.zip 确保.ExternalData文件夹在VTK-8.1.1文件夹中(.External...

但求效人无遗疏 2464

VTK 的Linux开发环境快速搭建

一、安装VMware workstations; 二、下载Ubuntu镜像; 三、安装镜像,做相关的配置; 如上三步,未做详细介绍,网上已有很多详细的教程,请自行查阅。 四、所需package的安装 1.安装cmake 2.安装ccmake 便于进行配置项的查看和修改; 3.安装mesa 开放的三维计算机图形库,以开源形式实现了OpenGL的应用程序接口; 安装命令:sudo apt install mesa-common-dev libgles3-mesa mesa-utils 4.安装x11 图形化窗口

Spring2b的博客 2576
上一篇: 非线性优化库——NLopt
下一篇: 博客赞赏年收入
我才睡醒
博客等级 码龄15年 390粉丝 45原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我才睡醒

一分一厘都是爱^-^

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值