显示坐标和世界坐标的关系
vtk吧
全部回复
仅看楼主
level 1
如下代码:
void getScreentPos(double displayPos[3], double world[3])
{
double fp[4], tmp1[4], eventFPpos[4];
renderer->GetActiveCamera()->GetFocalPoint(fp);
cout << "GetFocalPoint" << fp[0] << "-" << fp[1] << "-" << fp[2] << "-" << fp[3] << endl;
fp[3] = 1.0;
renderer->SetWorldPoint(fp);
renderer->WorldToDisplay();
renderer->GetDisplayPoint(tmp1);
tmp1[0] = displayPos[0];
tmp1[1] = displayPos[1];
renderer->SetDisplayPoint(tmp1);
renderer->DisplayToWorld();
renderer->GetWorldPoint(eventFPpos);
}
2021年02月20日 02点02分 1
level 1
如果我在三维直接进行画线的时候,如果不是靠近世界坐标的原点,线不会再实体上,如图
2021年02月20日 02点02分 2
level 1
2021年02月20日 02点02分 3
level 1
2021年02月20日 02点02分 4
吧主大大帮忙看看哈[哈哈]
2021年02月20日 02点02分
@子非秋刀鱼 来了来了
2021年02月22日 01点02分
level 12
三维空间画线是一个比较有迷惑性的事情
其中有个垂直于屏幕的Z轴深度问题
鼠标点下去
到底取多深?
2021年02月22日 01点02分 5
没错,如果我点击一下,是可以用pick来判断是否在实体上,但是当我点击的时候不在实体上,是很难判断深度的问题的,那吧主的意思是不是这样:我画一条线,首先获取在落在实体上的点,获取当前的深度,然后将其他不在实体坐标的深度都转换为一致的,在重新画这一条线,是这个意思吗?
2021年02月26日 02点02分
level 12
你上面的代码是一直从屏幕坐标转换到世界坐标,
没用的,
没有深入到锥体表面
2021年02月22日 01点02分 6
level 12
越靠近原点越正确
越远离原点越离谱
是因为这个变换中刚刚好用到了点到原点的距离,这个距离约接近0,得到的结果越看起来像是对的
2021年02月22日 01点02分 7
level 12
你的锥体是三维网格的
第一步先尝试在三维网格中取点
就是当鼠标点在锥体上时,锥体上对应的点能变色
2021年02月22日 01点02分 8
1