计算vtkRender的屏幕坐标范围和物理坐标范围

vtkRenderWindow可以包含多个vtkRender,在模型检测等计算过程中需要计算一些vtkRender的屏幕范围和物理范围,最近想了一种方案:

计算屏幕坐标范围:

double vp[4];
this->Renderer->GetViewport(vp);

this->Renderer->NormalizedDisplayToDisplay(vp[0], vp[1]);
this->Renderer->NormalizedDisplayToDisplay(vp[2], vp[3]);

double dx = vp[2] - vp[0];
double dy = vp[3] - vp[1];

计算物理坐标范围:

double vp[4];
this->Renderer->GetViewport(vp);

double wp1[3] = { vp[0], vp[1], 0.0 };
double wp2[3] = { vp[2], vp[3], 0.0 };

this->Renderer->NormalizedDisplayToViewport(wp1[0], wp1[1]);
this->Renderer->ViewportToNormalizedViewport(wp1[0], wp1[1]);
this->Renderer->NormalizedViewportToView(wp1[0], wp1[1], wp1[2]);
this->Renderer->ViewToWorld(wp1[0], wp1[1], wp1[2]);

this->Renderer->NormalizedDisplayToViewport(wp2[0], wp2[1]);
this->Renderer->ViewportToNormalizedViewport(wp2[0], wp2[1]);
this->Renderer->NormalizedViewportToView(wp2[0], wp2[1], wp2[2]);
this->Renderer->ViewToWorld(wp2[0], wp2[1], wp2[2]);
时间: 2024-10-17 15:00:30

计算vtkRender的屏幕坐标范围和物理坐标范围的相关文章

逻辑坐标与设备坐标——全窗口坐标、屏幕坐标、客户区坐标的总结

Windows应用程序绘制图形时使用的是一种逻辑单位,每个逻辑单位的大小由映射模式决定,这个逻辑单位既可以与设备单位(屏幕或打印机上的一个 像素点)相同,也可以是一种物理单位(如毫米),还可以是用户自定义的一种单位.在Windows应用程序中,只要与输出有关系,都要使用映射模式. 首先谈谈映射模式基本知识,当Windows应用程序在其客户区绘制图形时,必须给出在客户区的位置,其位置用x和y 两个坐标表示,x表示横坐标,y表示纵坐标.在所有的GDI绘制函数中,这些坐标使用的是一种"逻辑单位&quo

poj 2555 Drink, on Ice 物理坐标计算

题意: 把一些冰和一些水混合,求最终的状态和温度. 分析: 质量守恒+能量守恒.计算时将整条曲线平移至(0,0)开始会比较方便,但是发现当Q=0时T=-30,引入新的横坐标dT=T+30,曲线就从(Q,dT)==(0,0)开始了. 代码: //poj 2555 //sep9 #include <iostream> #include <cmath> using namespace std; const double cw=4.19,ci=2.09,em=335; int main()

使用pygame实现一个简单的五子棋游戏

前言写程序已经丢掉很长一段时间了,最近觉得完全把技术丢掉可能是个死路,还是应该捡起来,所以打算借CSDN来记录学习过程, 由于以前没事的时候断断续续学习过python和用flask框架写过点web,所以第一步想捡起python,但是,单纯学习python有点枯燥,正好看到pygame,感觉还挺简单,所以想先写个小游戏练练手. 准备python基础相关准备: pygame的基础知识,参考目光博客的“用Python和Pygame写游戏-从入门到精通” 安装python 3.8.0 在python官网

高速公路坐标高程计算软件3.3版本发布

---恢复内容开始--- 高速公路坐标高程计算软件说明 高速公路坐标高程计算软件是在多年的施工放样工作中总结出来的一个很有效的程序.它是公路.铁路施工放样的好助手,可以帮你完成以前你用很大的精力和时间完成的计算.它能在工作中给予很大的方便,使你能从繁琐的计算工作中解脱出来,你只要按要求将已知的几个数据输入即可,并大大的提高了计算精确性和准确性.操作简便.实用,适合采用坐标法放样,如具有全站仪和测距仪的测量放线工作,快速准确定位. 高速公路坐标高程计算软件可以帮你完成直线.圆曲线.缓和曲线(完全缓

基于OpenCV的立体相机标定StereoCalibration与目标三维坐标定位

说明:以下涉及到的一些公式以及图片来自于Learning OpenCV. 做了快2个月的立体相机标定,遇到了一些问题,也有了一些体会,在这里记下来. 1.在做立体相机标定的时候,标定板的规范与否直接影响到最后标定的结果,进而会影响目标3D坐标重建. 这里说的规范指的是,打印的棋盘格(或者圆点)需要保证每个square都是严格大小一致的,即打印出来后每个棋盘格大小应一样:打印出来的棋盘格要尽量平整的附在某一平面或者玻璃板上,然后才能用来拍摄标定图像:测量squareSize的时候,要尽可能的精确,

FFT结果的物理意义

图像的频率是表征图像中灰度变化剧烈程度的指标,是灰度在平面空间上的梯度.如:大面积的沙漠在图像中是一片灰度变化缓慢的区域,对应的频率值很低:而对 于地表属性变换剧烈的边缘区域在图像中是一片灰度变化剧烈的区域,对应的频率值较高.傅立叶变换在实际中有非常明显的物理意义,设f是一个能量有限的模拟信号,则其傅立叶变换就表示f的谱.从纯粹的数学意义上看,傅立叶变换是将一个函数转换为一系列周期函数来处理的.从物理效果看,傅立叶变换是将图像从空间域转换到频率域,其逆变换是将图像从频率域转换到空间域.换句话说,

Client Window坐标

GetClientRect(HWND, RECT*) ---得到窗口的客户区大小,left,top总是0,bottom是客户区高度,right是客户区宽度 GetWindowRect(HWND, RECT*) ---得到窗口相对屏幕左上角(0,0)的坐标,即窗口左上角(left,top)和右下角(right,bottom)的坐标 ScreenToClient(HWND, POINT*) ---将一屏幕坐标转为相对于窗口客户区左上角的坐标.假设客户区屏幕坐标(110,120,400,400) 若p

屏幕坐标系和窗口客户区坐标

屏幕坐标系和窗口客户区坐标系最明显的区别在于坐标原点,屏幕坐标系的坐标原点在整个屏幕的左上角,而窗口客户区坐标系的坐标原点在窗口客户区的左上角,通常这两个点是不重合的. 一 设备坐标和逻辑坐标 设备坐标(Device Coordinate)又称为物理坐标(Physical Coordinate),是指输出设备上的坐标.通常将屏幕上的设备坐标称为屏幕坐标.设备坐标用对象距离窗口左上角的水平距离和垂直距离来指定对象的位置,是以像素为单位来表示的,设备坐标的X轴向右为正,Y轴向下为正,坐标原点位于窗口

接触力的计算

游戏或者仿真中要提供接近于真实世界的完整触觉反馈体验,需要VR头戴设备.控制器.外骨骼甚至是行走模拟装置的配合.然而,人类的触觉系统极其敏感,普通人打麻将就能用手指轻轻松松地摸出牌面.在目前的技术基础上,机器很难还原真实的人类触觉反馈,能做的只是在特定的内容和场景中尽量满足用户的反馈体验.比如在VR游戏中抓取武器和物品时,几厘米的偏差,没有准确还原物体材质和纹路,对用户的实际体验影响并不大.除了高精度的外设,要实现触觉或力反馈,还需要强大的物理引擎,虚拟世界中的复杂物体的建模.与用户肢体的触碰非