Повернуть строку растрового изображения/штриха GLUT вокруг ее центра?

Как вы можете видеть на рисунках, струна вращается вокруг своего начала.

Нет вращения:

Нет поворота

Повернуто:

Повернуто

Изменение RasterPos или его перевод вообще ничего не меняет. Я попробовал glutStrokeString и glutBitmapString. Код для примера:

gl.glColor4f((float) 1, (float) 0, (float) 0, 1.0f);
gl.glScalef(0.0015f, 0.0015f, 0.0015f);
gl.glRotatef(-angleHorizontal, 0, 1, 0);
glut.glutStrokeString(GLUT.STROKE_ROMAN, "ABCDEF");

person Gehhilfe    schedule 23.04.2019    source источник


Ответы (1)


GlutBitmapCharacter:

Вы не можете. Он использует (устаревшие, устаревшие, устаревшие) растровые операции OpenGL, которые всегда выравниваются по пиксельной сетке.

GluStrokeПерсонаж:

Это просто обычные сегменты линий, которые преобразуются через фиксированный конвейер функций; или если вы находитесь в профиле совместимости через шейдерную программу ранней версии GLSL, которая использует набор встроенных переменных для доступа к фиксированному состоянию конвейера функции. В одной из моих программ codesamples (которую я написал, чтобы объяснить, как работает усеченная проекция) у меня есть вспомогательная функция для рисования стрелок с аннотациями. Полный код можно найти здесь https://github.com/datenwolf/codesamples/blob/master/samples/OpenGL/frustum/frustum.c соответствующая функция начинается со строки 114.

person datenwolf    schedule 23.04.2019
comment
Спасибо за подсказку! Сейчас я использую glutStrokeString. И я это исправил. Я не знаю точно как, но это работает :3 - person Gehhilfe; 23.04.2019
comment
Тогда мое предложение в вашем предыдущем вопросе было правильным. - person gouessej; 24.04.2019