Мне известно, что верхний левый угол экрана (при условии, что телефон удерживается в левом нижнем углу) равен (0,0). Однако, если бы я хотел, чтобы мой (0,0) пункт был нижним левым углом вместо верхнего левого угла, как бы я это сделал?Вручную поверните систему координат для пейзажного режима слева
Я пытаюсь нарисовать объекты с использованием OpenGL в указанном месте. Я сейчас касаюсь экрана, но значение y рисуется на неправильной стороне экрана. Вот пример изображения, если это помогает. Обратите внимание, что пятно на белом фоне - это то, где я прикасаюсь к экрану, а фиолетовый материал - это система частиц, которую я рисую с помощью OpenGL.
Я установил мой поддерживается интерфейс, как это:
- (NSUInteger)application:(UIApplication*)application supportedInterfaceOrientationsForWindow:(UIWindow*)window
{
return UIInterfaceOrientationMaskAllButUpsideDown;
}
- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskLandscapeLeft;
}
В моем drawFrame
метод:
glViewport(0, 0, 480, 320);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrthof(0.0f, 480, 0.0f, 320, -100.0f, 100.0f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
//render the particles being drawn, etc
В моем touchesBegan
метод:
UITouch *touch = [[event allTouches] anyObject];
CGPoint location = [touch locationInView:touch.view];
if (pe.active != YES)
{
pe.active = YES;
NSLog(@"x: %f y: %f", location.x, location.y);
pe.sourcePosition = Vector2fMake(location.x, location.y);
}
Затем я попытался вручную повернуть систему координат под углом 90 градусов, делая это в моем viewWillAppear
методе:
self.view.transform = CGAffineTransformIdentity;
self.view.transform = CGAffineTransformMakeRotation((M_PI * (-90)/180.0));
self.view.bounds = CGRectMake(0.0, 0.0, 480, 320);
Указание CGAffineTransformMakeRotation
вызова с -90 градусов, как показано выше, следует изменить систему координат, но не делает.
Любая помощь очень ценится.
Я не вижу OpenGL. Измените систему координат при рисовании. –
Ive отредактировал мой вопрос и добавил фотографии, чтобы лучше объяснить мою проблему, спасибо. – coderz