我正在使用OPENGL ES在Iphone中绘制一个PIE字符。现在我需要检查用户点击的饼图的颜色。当我点击任何饼时,它有时会返回正确的值,有时不正确,有时只返回0,0,0。
'(void)handleTap:(UITapGestureRecognizer *)识别器{
CGPoint lPoint = [识别器locationOfTouch:0 inView:mGLView];
Byte 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(@“POINT X =%f Y =%f%d%d%d”,lPoint.x,lPoint.y,aPixel [0],aPixel [1],aPixel [2]);'
答案 0 :(得分:1)
在OpenGL中,(0,0)是左下角的像素。在iOS中,它是左上角的像素。所以你从错误的位置读书。在调用locationOfTouch后,我想你想要添加:inView:
lPoint.y = mGLView.bounds.height - lPoint.y;