VS QT VTK 左下角显示同步小坐标轴_qvtkwidget 坐标轴-程序员宅基地

技术标签: C/C++  Qt  qt  VTK  开发语言  

主要参考

https://blog.csdn.net/qq_37996632/article/details/106415402
https://kitware.github.io/vtk-examples/site/Cxx/Qt/BorderWidgetQt

主要代码

#include "BorderWidgetQt.h"

#include <vtkBorderWidget.h>
#include <vtkCommand.h>
#include <vtkGenericOpenGLRenderWindow.h>
#include <vtkNamedColors.h>
#include <vtkNew.h>
#include <vtkPolyDataMapper.h>
#include <vtkProperty.h>
#include <vtkRenderWindow.h>
#include <vtkRenderer.h>
#include <vtkSphereSource.h>
#include <vtkVersion.h>
#include <vtkAxesActor.h>
#include <vtkCamera.h>

class BorderCallback : public vtkCommand
{
    
public:
	BorderCallback()
	{
    
	}

	static BorderCallback* New()
	{
    
		return new BorderCallback;
	}

	virtual void Execute(vtkObject* vtkNotUsed(caller), unsigned long, void*)
	{
    
		//      vtkBorderWidget *borderWidget =
		//          reinterpret_cast<vtkBorderWidget*>(caller);
	}
};

// Constructor
BorderWidgetQt::BorderWidgetQt(QWidget* parent)
	: QMainWindow(parent)
{
    
	this->resize(600, 400);
	this->vtkWidget = new QVTKOpenGLNativeWidget(this);
	this->setCentralWidget(vtkWidget);
	vtkNew<vtkNamedColors> colors;

	// Sphere
	vtkNew<vtkSphereSource> sphereSource;
	sphereSource->Update();
	vtkNew<vtkPolyDataMapper> sphereMapper;
	sphereMapper->SetInputConnection(sphereSource->GetOutputPort());
	vtkNew<vtkActor> sphereActor;
	sphereActor->SetMapper(sphereMapper);
	sphereActor->GetProperty()->SetColor(colors->GetColor4d("Tomato").GetData());

	// VTK Renderer
	vtkNew<vtkRenderer> renderer;
	renderer->AddActor(sphereActor);
	renderer->SetBackground(colors->GetColor3d("SteelBlue").GetData());

	// 相机拉远
	renderer->ResetCamera();
	renderer->GetActiveCamera()->Zoom(1.5);
	// Connect VTK with Qt
	this->vtkWidget->renderWindow()->AddRenderer(renderer);

	// Add a border widget to the renderer
	//vtkNew<vtkBorderWidget> bw;
	//this->BorderWidget = bw;
	//this->BorderWidget->SetInteractor(this->vtkWidget->interactor());
	//this->BorderWidget->On();

	vtkSmartPointer<vtkAxesActor> axes_actor = vtkSmartPointer<vtkAxesActor>::New();
	axes_actor->SetPosition(0, 0, 0);
	axes_actor->SetTotalLength(2, 2, 2);
	axes_actor->SetShaftType(0);
	axes_actor->SetCylinderRadius(0.02);

	vtkSmartPointer<vtkOrientationMarkerWidget> widget =
		vtkSmartPointer<vtkOrientationMarkerWidget>::New();;
	this->BorderWidget = widget;
	widget->SetOrientationMarker(axes_actor);
	widget->SetInteractor(this->vtkWidget->interactor());
	widget->SetEnabled(1);
	widget->InteractiveOn();
}

效果

请添加图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_44575789/article/details/125387703

智能推荐

Unity Shader总结(五)——基础纹理_unity内置的shader通用纹理名有:-程序员宅基地

文章浏览阅读166次。单张纹理实践Shader "Unity Shaders Book/Chapter 7/Single Texture" { Properties { _Color ("Color Tint", Color) = (1, 1, 1, 1) //white是内置纹理的名字 _MainTex ("Main Tex", 2D) = "white" {} _Specular ("Specular", Color) = (1, 1, 1, 1) _Gloss ("Gloss", Range(8._unity内置的shader通用纹理名有:

国内国外有名的编程网站_国外系统程序员基地论坛-程序员宅基地

文章浏览阅读2.4k次。网站/论坛:CSDN网址:http://www.csdn.net介绍:由《程序员》杂志社主办,集新闻动态、技术文档、论坛一体的大型综合技术网站,涉及大多数主流的编程语言。内容以初、中级为主流,面向大多数人的网站。 论坛:java视线论坛网址:forum.javaeye.com介绍:讨论Java和企业开发的高端论坛,管理极其严格(甚于联盟),主要是上海_国外系统程序员基地论坛

用php实现本地文件的上传_php上传exe文件-程序员宅基地

文章浏览阅读3.2k次,点赞2次,收藏18次。1.首先创建form表单,设置input的type为file实现文件的上传,代码如下:<form action="" method="POST" enctype="multipart/form-data"> <tr> <td width="150" height="30" align="right" valign="middle">请选择上传文件:</td> <td width="250">..._php上传exe文件

使用Cef和Qt做一个跨平台的多标签多窗口浏览器_cef3 多个标签-程序员宅基地

文章浏览阅读2.8k次,点赞6次,收藏30次。使用Cef和Qt做一个跨平台浏览器?提示:这篇文章主要介绍提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录使用Cef和Qt做一个跨平台浏览器?前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas _cef3 多个标签

STM32速成笔记—SPI通信_stm32f1 spi通信-程序员宅基地

文章浏览阅读434次。本文介绍了什么是SPI,详细介绍了STM32的SPI并给出了详细的程序设计。_stm32f1 spi通信

时间序列绘制ACF与PACF图像_stata acf图-程序员宅基地

文章浏览阅读7.1k次。绘制acf与pacf图像代码如下:其中AR模型看PACF,MA模型看ACFfrom statsmodels.graphics.tsaplots import plot_acf, plot_pacfimport pandas as pdimport matplotlib.pyplot as pltimport numpy as npdf = pd.DataFrame(np.random.randint(1, 10, size=(365, 1)), columns=['value'], index_stata acf图

随便推点

4.2寸_Wifi标签功耗电流计算-程序员宅基地

文章浏览阅读64次。4.2寸Wifi标签不工作的时候电流的消耗主要来自两部分:待机时,醒来监听时。经过测量,4.2寸Wifi标签的待机电流是3.1uA , 醒来监听的峰值电流是32 mA。从上面三个图的电流消耗图中(包括待机和醒来监听),我们以最后的图来算,从图中可以看出醒来监听的峰值电流是123mA,平均电流是122uA=0.122mA。4.2寸Wifi标签系统设定每间隔1秒醒来一次监听是否有唤醒数据。用平均电流来计算1 小时醒来监听电量:0.122X1=0.122mAh。

SQL种获取单表筛选数据的子级或者父级,或者子父级存储过程--通用_sql过滤树状图父类-程序员宅基地

文章浏览阅读1.3k次。详见SQL递归---------------------------------------获取所有子级/*----------------------------------------------------------*//* [PC1recursion] *//*----------------..._sql过滤树状图父类

工业车间液晶SOP电子看板:提升生产效率的神奇利器-程序员宅基地

文章浏览阅读126次,点赞5次,收藏3次。工人们可以迅速根据电子看板上的提示,安排自己的工作节奏,调整机器设备,确保生产流程的高效运转。这不仅减少了因信息不畅或误解而产生的延误和错误,更使得整个生产过程如同一个协调有序的交响乐团,每个成员都能够默契配合,共同奏响生产的华丽乐章。工业车间液晶SOP电子看板,这一创新工具,如同车间中的智慧之眼,为生产流程注入了活力与智慧。其神奇的魅力,不仅在于提升了生产效率,更在于优化了繁琐的工作流程,减少了可能的人为错误,从而极大地提高了工作的准确性和质量。工业车间液晶SOP电子看板是新型工具。

Python点云处理(十六)点云精配准算法之ICP_python中点云配准icp算法-程序员宅基地

文章浏览阅读2.7k次。点云ICP算法是一种迭代的优化算法,旨在将两个或多个点云的位置和姿态进行校准,使其在空间中最佳匹配。ICP算法的核心思想是通过迭代的方式,不断寻找最小化两个点云之间距离误差的最佳变换矩阵。它基于最近点匹配的思想,将源点云的点与目标点云中最近的点进行匹配,并根据匹配点对之间的误差来更新变换矩阵。需要注意的是ICP算法对原始点云位置有一定要求,若点云初始姿态/位置相差较大,则难以直接通过原始的ICP算法完成准确配准。需要进一步结合粗配准算法或通过改进ICP算法实现配准。_python中点云配准icp算法

lighttpd流量监控(mod_rrdtool)-程序员宅基地

文章浏览阅读793次。lighttpd中带了一个监控模块,可以监控lighttpd服务器的流量。1. 确保安装lighttpd的时候,带了rrdtool模块,如果没有,手动安装参考 这里2. 在/etc/lighttpd/lighttpd.conf中,激活mod_rrdtool模块,并添加以下代码: rrdtool.binary = "/usr/bin/rrdtool" rrdtool.db-n_lighttpd流量

am3359制作微型计算机,从BeagleBone谈AM335x硬件系统设计-程序员宅基地

文章浏览阅读316次。从BeagleBone谈AM335x硬件系统设计[复制链接]日期:2012-04-25如果不是要试用BeagleBone,也不会花着大把的时间去研究AM335X的硬件系统设计,这些天翻阅了TI好多的文档资料,有一些小小的心得,和大家共享一下,全当做个记录,时间久了可以回来翻翻。我主要按以下的顺序,谈谈我最近的一些收获,仅供大家参考。BeagleBone的参考手册:《BeagleBone Rev A..._am335x需要在外设之前上电吗

推荐文章

热门文章

相关标签