gpt4 book ai didi

android - 如何在 ogl 中获取触摸屏点的坐标?

转载 作者:行者123 更新时间:2023-11-29 21:35:26 26 4
gpt4 key购买 nike

我正在使用 OpenGL 绘制 map 。在读取 XML 文件并设置相应的缓冲区后,我正在绘制 map 。该 map 包含街道、高速公路和边界。我想要的是每当我触摸 map 时,特定图层的颜色应该改变。

我面临的问题是,每当我触摸屏幕时,我只是得到触摸点的屏幕像素。我想将此点转换为 OpenGL 坐标,以便我可以将此点与绘制的 map 匹配并突出显示所选点。

如何将这个点转换成OpenGL坐标?

最佳答案

您需要将屏幕点取消投影到 OpenGL 世界空间中:

vec3 UnProjectPoint( const vec3& Point, const max4& Projection, const mat4& ModelView )
{
vec4 R( Point, 1.0f );

R.x = 2.0f * R.x - 1.0f;
R.y = 2.0f * R.y - 1.0f;
R.y = -R.y;

R.z = 1.0f;

R = Projection.GetInversed() * R;
R = ModelView.GetInversed() * R;

return R.ToVec3();
}

关于android - 如何在 ogl 中获取触摸屏点的坐标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18510254/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com