Вращать растровую / штриховую строку GLUT вокруг ее центра? - PullRequest
1 голос
/ 23 апреля 2019

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

Без вращения:

No rotation

Вращено:

Rotated

Изменение 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");

1 Ответ

1 голос
/ 23 апреля 2019

glutBitmapCharacter:

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

glutStrokeCharacter:

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

...