Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Глюки с renderText
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Система рисования. Печать
menand
Доброго времени суток. Пишу на C+QT+OpenGL Возник такой вопрос - как можно подписывать оси (XYZ)?

Сейчас они рисуются так:

Раскрывающийся текст
_REAL Arrow;
_REAL gs = getSize;
Arrow = gs*0.03;

glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, colorAxes);
glBegin(GL_LINES);
glVertex3d(-gs,0.0e0,0.0e0);
glVertex3d(gs,0.0e0,0.0e0);
glEnd();

glBegin(GL_LINES);
glVertex3d(gs,0.0e0,0.0e0);
glVertex3d(gs-Arrow,0.0e0-Arrow,0.0e0);
glEnd();
glBegin(GL_LINES);
glVertex3d(gs,0.0e0,0.0e0);
glVertex3d(gs-Arrow,0.0e0+Arrow,0.0e0);
glEnd();
glBegin(GL_LINES);
glVertex3d(gs,0.0e0,0.0e0);
glVertex3d(gs-Arrow,0.0e0,0.0e0+Arrow);
glEnd();
glBegin(GL_LINES);
glVertex3d(gs,0.0e0,0.0e0);
glVertex3d(gs-Arrow,0.0e0,0.0e0-Arrow);
glEnd();

glBegin(GL_LINES);
glVertex3d(0.0e0,-gs,0.0e0);
glVertex3d(0.0e0,gs,0.0e0);
glEnd();

glBegin(GL_LINES);
glVertex3d(0.0e0,gs,0.0e0);
glVertex3d(0.0e0-Arrow,gs-Arrow,0.0e0);
glEnd();
glBegin(GL_LINES);
glVertex3d(0.0e0,gs,0.0e0);
glVertex3d(0.0e0+Arrow,gs-Arrow,0.0e0);
glEnd();
glBegin(GL_LINES);
glVertex3d(0.0e0,gs,0.0e0);
glVertex3d(0.0e0,gs-Arrow,0.0e0-Arrow);
glEnd();
glBegin(GL_LINES);
glVertex3d(0.0e0,gs,0.0e0);
glVertex3d(0.0e0,gs-Arrow,0.0e0+Arrow);
glEnd();

glBegin(GL_LINES);
glVertex3d(0.0e0,0.0e0,-gs);
glVertex3d(0.0e0,0.0e0,gs);
glEnd();

glBegin(GL_LINES);
glVertex3d(0.0e0,0.0e0,gs);
glVertex3d(0.0e0-Arrow,0.0e0,gs-Arrow);
glEnd();
glBegin(GL_LINES);
glVertex3d(0.0e0,0.0e0,gs);
glVertex3d(0.0e0+Arrow,0.0e0,gs-Arrow);
glEnd();
glBegin(GL_LINES);
glVertex3d(0.0e0,0.0e0,gs);
glVertex3d(0.0e0,0.0e0-Arrow,gs-Arrow);
glEnd();
glBegin(GL_LINES);
glVertex3d(0.0e0,0.0e0,gs);
glVertex3d(0.0e0,0.0e0+Arrow,gs-Arrow);
glEnd();


надо бы на концах писать x Y Z (у соответстующей стрелочки) причём само собой У стрелки и ЛИЦОМ к пользователю (тоесть чтобы буква "боком" не была повёрнута). Как это можно сделать?..

Ещё вопрос - добавить "рисочки" (размерные.. как на линейке) и подписывать их.. както можно осуществить?

Попробовал сделать так:

Раскрывающийся текст
QFont tmpfont;
tmpfont.setFamily("Arial Black");
tmpfont.setPointSize(15);
tmpfont.setBold(false);
glColor3f(0,0,0);
renderText(modelsList[activeModel]->getSize*0.9,0.0,0.0,"X",tmpfont);
glColor3f(0,0,0);
renderText(0.0,modelsList[activeModel]->getSize*0.9,0.0,"Y",tmpfont);
glColor3f(0,0,0);
renderText(0.0,0.0,modelsList[activeModel]->getSize*0.9,"Z",tmpfont);


в начале всё ок..

http://clip2net.com/s/29fez

http://clip2net.com/s/29ffn

а буквально через пол-секунды Y и Z почемуто перестают двигаться...

http://clip2net.com/s/29ffL

что за нафиг???
menand
вообщем сам разобрался.. там какойто глюк с матрицей трансформации. стал загружать после каждого вызова и стало всё ок..
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.