(C ++,Qt,Linux)将游戏地图线转换为图像坐标

时间:2014-03-27 06:38:07

标签: c++ linux qt math

好吧,所以基本上我用各种Ptrace功能获得我的游戏坐标,运行良好,我绘制了一张地图,这个3D游戏的街景。并将它放在qgraphicsscene上,使用qpixmap,它显示出漂亮,可缩放,平移,所有好东西。现在我遇到了一个问题,我的玩家在某个位置的位置是:X = 904.758 Y = 9754.3和图像坐标,是PixX = 5453.63 PixY = 1205.01,大致无论如何。如何将玩家位置转换为Pixel位置?如果需要,我可以给出更多的坐标。另一个位置:X = 960.784,Y = 9728.9 ...... PixX = 5426.65,PixY = 1218.5。

所有这些都是在我的手机上输入的,所以如果难以阅读,我会道歉。

1 个答案:

答案 0 :(得分:0)

当您使用3D时,屏幕坐标取决于所有三个世界坐标。如果场景中没有山丘,可以假设z = 0.

接下来要回答的问题是使用什么样的投影。平行或中心型?然后你需要至少3个已知的关系对来计算第四个,该技术是在文艺复兴时期开发的,被称为cross-ratios,其思想是交叉比率在投影下保持不变。