我有一个覆盖在MKMapView之上的OpenGL视图。我的目标是让glView的坐标在地图上具有相同的MKMapPoints值。为此,我在地图的左上角和右下角找到了MKMapPoint的值。
CLLocationCoordinate2D coordinateTopLeft = [mapView convertPoint:CGPointMake(0, 0) toCoordinateFromView:mapView];
MKMapPoint pointTopLeft = MKMapPointForCoordinate(coordinateTopLeft);
CLLocationCoordinate2D coordinateBottomRight = [mapView convertPoint:CGPointMake(mapView.frame.size.width, mapView.frame.size.width) toCoordinateFromView:mapView];
MKMapPoint pointBottomRight = MKMapPointForCoordinate(coordinateBottomRight);
然后我设置glView的右,左,底和顶坐标以相应地匹配这些点。
glOrthof(pointTopLeft.x, pointBottomRight.x, pointBottomRight.y, pointTopLeft.y, -1, 1);
不幸的是,这不起作用。我试图绘制的三角形不起作用。我测试过,我试图绘制的点位于正确的域中。
我只是误解了glOrthof方法的工作原理吗?
答案 0 :(得分:0)
您是否尝试过翻转pointBottomRight.y和pointTopLeft.y? OpenGL y坐标系与最常用的约定相反。