Название: Текст в OpenGL Отправлено: kobra от Май 29, 2010, 23:15 Здраствуйте!
Сейчас работаю над тем что строю график функции с помощью библиотеки OpenGl. У меня есть клас Graph который должен как раз все рисовать. Он унаследован от класа QGLWidget. Дальше я привязал этот виджет к моему главному окну: Код: Graph *gr = new Graph(ui->centralWidget); В методе paintGL() я прописал алгоритм построения графика(и к моему удивлению без всяких проблем я получил желаемый результат почти сразу). Но на графике конечно же нужно понадписывать оси, а также некоторые значения. Думал воспользоваться функцией renderText(). Но я ее или криво использую или она все-таки делает не то что мне нужно. Насколько я понял, она работает совсем не так, как другие функции библиотеки(к примеру glVertex2f). Тойсть если я использую процедуру glVertex2f и передаю туда координаты 100, 100 то в функции renderText координаты 100, 100 это совсем другое место. Плюс насколько я понял, если я буду менять размер моего окна, то график будет тоже расширяться но текст останеться на том же месте. Как мне решить эту проблему? Заранее благодарен Название: Re: Текст в OpenGL Отправлено: break от Май 30, 2010, 10:53 renderText работает в screenSpace - поэтому естественно координаты не совпадают, но привязать его к вашим точкам на графике можно - для этого прийдется написать функцию преобразования WorldSpace координат в ScreenSpace координаты. Размер текста действительно не меняется (по той же причине) - но если есть увеличение / уменьшение для ваших графиков - то можно попробовать менять размер шрифта для renderText как то пропорционально.
Название: Re: Текст в OpenGL Отправлено: kobra от Май 30, 2010, 12:00 Спасибо, таким способом работает.
Еще такой вопрос могу ли я рисовать с какого нибудь другого метода моего класса(не paintGL())? Название: Re: Текст в OpenGL Отправлено: Авварон от Май 30, 2010, 12:21 а доку мы не читаем?
Код: void QGLWidget::renderText ( double x, double y, double z, const QString & str, const QFont & font = QFont(), int listBase = 2000 ) Название: Re: Текст в OpenGL Отправлено: kobra от Май 30, 2010, 19:29 читал но чесно говоря не понял что имелось ввиду... со своим вторым вопросом разобрался, просто надо чтоб тот метод вызовался из paintGL
Название: Re: Текст в OpenGL Отправлено: Авварон от Май 30, 2010, 20:24 функция с 2мя координатами работает в оконной системе координат
функцмя с 3мя - в координатах сцены |