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

Posted xuhui24

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算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]);

 

以上是关于计算vtkRender的屏幕坐标范围和物理坐标范围的主要内容,如果未能解决你的问题,请参考以下文章

二维图像到二维屏幕的显示,对应屏幕坐标

Unity从深度缓冲重建世界空间位置

在百度地图中,已知圆的圆心坐标、 和圆的半径(单位:米),怎么计算圆的坐标范围?

opengl翻转后为啥出现两个图像

MySQL选择范围内的坐标

地图入门_坐标系统