【FastCAE源码阅读7】视图方向切换按钮实现原理
在FastCAE工具栏上有视图切换按钮,如下图所示:
本文介绍如何实现。
FastCAE集成了Python解析器,当单击按钮时,中间用Python执行的,最后调用MainWindow.dll库接口实现的。
具体的Python代码在Python模块的py文件夹下的MainWindow.py文件中。这几个按钮都是调用的setView方法,只是入参不同而已。

MainWindow.dll库对外的接口在MainWindowPy.h文件中定义。这里调用的是setView接口。

继续跟踪代码,发现setView具体实现在graphWindowBase.cpp文件中。具体代码如下:
void GraphWindowBase::setView(QString view)
{if (view.toLower() == "fit")fitView();else if (view.toLower() == "xplus")setViewXPlus();else if (view.toLower() == "xminus")setViewXMiuns();else if (view.toLower() == "yplus")setViewYPlus();else if (view.toLower() == "yminus")setViewYMiuns();else if (view.toLower() == "zplus")setViewZPlus();else if (view.toLower() == "zminus")setViewZMiuns();
}
其具体实现只是根据入参不同调用不同的方法。适应窗口(Fit window)调用的是fitView方法,我们来看其实现:
void Graph3DWindow::fitView()
{resetCamera();
}void Graph3DWindow::resetCamera()
{_render->ResetCamera();_renderWindow->Render();this->mouseWheelMove();
}void Graph3DWindow::setViewXPlus()
{vtkCamera *camera = _render->GetActiveCamera();camera->SetViewUp(0, 0, 1);camera->SetPosition(5000, 0, 0);camera->SetFocalPoint(0, 0, 0);resetCamera();
}
发现最后调用vtkRenderer的ResetCamera()方法就实现了适应窗口。其他视图调整是直接操作摄像机,指定其Up轴、位置及焦点实现的。
相关文章:
【FastCAE源码阅读7】视图方向切换按钮实现原理
在FastCAE工具栏上有视图切换按钮,如下图所示: 本文介绍如何实现。 FastCAE集成了Python解析器,当单击按钮时,中间用Python执行的,最后调用MainWindow.dll库接口实现的。 具体的Python代码在Python模块的py文件夹下的…...
小程序如何设置自取模式下的服务方式
设置自取模式下的服务方式是非常重要的,尤其是对于到店自取和到店堂食这两种不同的服务模式。下面我们就来介绍一下如何在小程序中设置这两种服务方式。 在小程序管理员后台->配送设置处,在服务方式处,设置自取情况下的服务方式。默认是&…...
使用数据分析,识别设备异常
设备健康监测系统在工业领域中扮演着至关重要的角色,它能够帮助企业及时发现设备异常,预防故障,提高设备使用寿命和生产效率。而异常诊断技术则是设备健康监测系统中的核心部分,能够实现对设备异常情况的准确判断。根据设备状态数…...
redis数据倾斜如何解决
Redis数据倾斜主要是由于数据访问热点导致的,通常在执行事务操作或范围查询时发生。这会导致大量数据集中在某个实例上,使得集群负载不均衡。以下是一些解决Redis数据倾斜的方法: 避免在同一个键值对上保存过多的数据。可以将大的键值对拆分…...
ATFX汇市:美联储鲍威尔再发鹰派言论,美元指数逼近106关口
ATFX汇市:11月10日,美联储主席鲍威尔在IMF举办的专家小组会议上讲话称:“如果进一步收紧货币政策变得合适,美联储‘将毫不犹豫地’这样做。”他还提到,对目前通胀进展感到满意,但“还有很长的路要走”。鲍威…...
【异常----finally和自定义异常】
文章目录 finally练习问题 异常的处理流程【异常处理流程总结】自定义异常类 finally 有些特定的代码,不论程序是否发生异常,都需要执行,比如程序中打开的资源:在程序正常或者异常退出时,必须要对资源进进行回收。另外…...
C# OpenCvSharp 环形文字处理 直角坐标与极坐标转换
效果1 效果2 项目 代码 using OpenCvSharp; using System; using System.Drawing; using System.Text; using System.Windows.Forms;namespace OpenCvSharp_Demo {public partial class frmMain : Form{public frmMain(){InitializeComponent();}string fileFilter "*.*…...
计算机视觉与深度学习 | 视频/图像转换及保存播放(Matlab源码)
===================================================== github:https://github.com/MichaelBeechan CSDN:https://blog.csdn.net/u011344545 ===================================================== 视频/图像转换及保存/播放 avi2img.m 功能:将视频转换为单张图片avi2m…...
网格变形算法
网格变形 需求分析技术分析 需求分析 根据几何模型上的几个特征点,对几何模型进行变形。比如 技术分析 把几何模型使用三角面片表示,然后通过网格映射变形进行实现。关于网格这块有本经典的书可以参考,《ploygon mesh processing》。上面…...
2. Spark报错,Task is Failed,errorMsg: FileNotFoundException xxxx
完整报错信息 21304, Task is Failed,errorMsg: FileNotFoundException: File does not exist: hdfs://xxxx-bigdata-nameservice/user/hive/warehouse/edw_ic.db/xxxx/part-00000-c8a718b3-54b3-42de-b36c-d6eedefd2e02-c000.snappy.parquet It is possible the xxx报错场景 …...
Flutter开发实战之上传身份照片并认证
思路 UI视图 上传身份证照片可以选择拍照方式上传,相册选择方式上传即可 身份证照片进行认证功能实现 对身份证照片进行认证,包括正面认证和反面认证即可上传给后端 使用第三方插件 image_picker: ^0.8.4Future<XFile> _getCameraImage() async {final cameraImages = …...
C++文件加密、解密
简介 在计算机科学中,密码学是一种通过编码和解码信息以保护数据安全的技术。C++作为一种通用编程语言,可用于实现各种密码学算法。本文将介绍如何使用C++对文件进行加密和解密。以下是使用C++进行文件加密的示例。 文件加密 在C++中,我们可以使用密码学中的异或(XOR)操作…...
使用Java语言实现基本RS触发器
使用Java语言实现计算机程序来模拟基本RS触发器的工作过程,通过本账号2023年10月17日所发布博客“使用Java语言实现数字电路模拟器”中模拟基本逻辑门组成半加器电路的方法来模拟基本触发器的组成和时间延迟。 1 基本RS触发器电路结构 基本RS触发器(又…...
c++函数指针作为std::map值
遇见一个场景,收到的tcp消息有个OperationID,然后执行具体的任务(函数),在c#中使用Dictionary结合委托一点没问题,c#代码如下: public delegate void TcpHandler();Dictionary<OperateID, Tc…...
data对象内新增属性,console.log()可以打印出来,不重新渲染
原因:受 ES5 的限制,Vue.js 不能检测到对象属性的添加或删除。因为 Vue.js 在初始化实例时将属性转为 getter/setter,所以属性必须在 data 对象上才能让 Vue.js 转换它,才能让它是响应的; data(){newTitle:{title:’…...
React:实现一个定时器计数器,每秒自动+1
需求:实现一个定时器计数器,每秒自动1 import React, { useState, useEffect } from "react";export default function App() {let [count, setCount] useState(0);useEffect(() > {let timer setInterval(() > {setCount(count 1);…...
rocksdb 中 db_bench 的使用方法
硬件要求 硬件要求如表1所示。 表1 硬件要求 项目 说明 CPU 12 * AMD Ryzen 5 5500U with Radeon Graphics 内存 DDR4 磁盘 HDD 软件要求 软件要求如表2所示。 表2 软件要求 项目 版本 说明 下载地址 CentOS 7.6 操作系统。 Download kernel 4.14.0 内核。…...
【前端】TypeScript核心知识点讲解
1.TypeScript简介及入门案例 (1)什么是TypeScript? TypeScript 是 JavaScript 的一个超集,支持 ECMAScript 6 (ES6)标准。 TypeScript 由微软开发的自由和开源的编程语言。 TypeScript 设计目标是开发大…...
【工具推荐】一键多平台文章发布神器推荐(免费)
hello,大家好,我是你们老朋友洛林,上一篇文章说到自己深受多平台手动发布的折磨「传送门」,准备开发一款文章多平台工具,后来联系到 Wechatsync 原作者进行了简单的沟通,下面是关于以后的一些规划ÿ…...
PDF有限制密码,不能复制怎么办?
大家现在接触PDF文件越来越多,有的时候在网上下载的PDF文件打开之后,发现选中文字之后无法复制。甚至其他功能也都无法使用,这是怎么回事?该怎么办? 当我们发现文件打开之后,编辑功能无法使用,很…...
Java 语言特性(面试系列1)
一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...
Matlab | matlab常用命令总结
常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...
拉力测试cuda pytorch 把 4070显卡拉满
import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试,通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小,增大可提高计算复杂度duration: 测试持续时间(秒&…...
12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...
分布式增量爬虫实现方案
之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面,避免重复抓取,以节省资源和时间。 在分布式环境下,增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路:将增量判…...
JVM 内存结构 详解
内存结构 运行时数据区: Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器: 线程私有,程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 每个线程都有一个程序计数…...
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...
CSS | transition 和 transform的用处和区别
省流总结: transform用于变换/变形,transition是动画控制器 transform 用来对元素进行变形,常见的操作如下,它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...
Golang——9、反射和文件操作
反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一:使用Read()读取文件2.3、方式二:bufio读取文件2.4、方式三:os.ReadFile读取2.5、写…...
tomcat入门
1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效,稳定,易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...
