0

我正在使用 OPENGL ES 在 Iphone 中绘制一个 PIE 字符。现在我需要检查用户点击的饼图的颜色。当我单击任何饼图时,它有时会返回正确的值,有时会不正确,有时只会返回 0,0,0。

'(void) handleTap:(UITapGestureRecognizer *) 识别器{

CGPoint lPoint = [识别器 locationOfTouch:0 inView:mGLView];

字节 aPixel[4]; glPixelStorei(GL_PACK_ALIGNMENT, 1); glReadPixels(lPoint.x, lPoint.y, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, &aPixel[0]);

NSLog(@"%i",glGetError()); NSLog(@"点 X = %f Y = %f %d %d %d",lPoint.x, lPoint.y, aPixel[0],aPixel[1],aPixel[2]);'

4

1 回答 1

1

在 OpenGL 中,(0, 0) 是左下角的像素。在 iOS 中,它是左上角的像素。所以你从错误的位置阅读。我想你想在调用 locationOfTouch:inView 之后添加:

lPoint.y = mGLView.bounds.height - lPoint.y;
于 2010-11-14T19:23:42.217 回答