Tag: 坐标转换

如何将2D显示坐标映射到3D OpenGL空间

我正在开发一款移植到Android上的3D游戏,我希望在3D游戏过程中使用触摸事件。 我需要3D空间中的点,就在靠近剪裁平面上,但我能得到的只是来自Android显示器的2D坐标。 那么,有没有办法将这些(x,y)坐标映射到3D空间中的(x,y,z)坐标? 编辑 好吧,我正在制作一个赛车游戏,我想在课程中插入一些项目,具体取决于我点击的位置。 我有这个function: void racing_mouse_cb(int button, int state, int x, int y) { //parameters (x,y) are coords of a display set_ill_fish(get_player_data( local_player())->view); } 但是现在我在一个距离的玩家面前插入物品: void set_ill_fish(view_t view) { item_locs[num_items].ray.pt.x = view.plyr_pos.x; item_locs[num_items].ray.pt.z = view.plyr_pos.z – 5; item_locs[num_items].ray.pt.y = find_y_coord(view.plyr_pos.x, view.plyr_pos.z – 5) + 0.2; item_locs[num_items].ray.vec = make_vector(0, 1, 0); . . . […]