OpenGL переворачивает или зеркально отображает объект чертежа
Как я могу откинуть, от зеркала вверх/слева от изображения OBJECT, а не на экране в методе onDraw?
Я попробовал масштаб (1, -1, 1), который не работал
мой код:
opengl.selectVertex(vertexname)
.translate(x-1, y, -9);
if (opengl.getPathModifier(vertexname).getAngle()>-180 &&
opengl.getPathModifier(vertexname).getAngle()<0 ) {
opengl.selectVertex(vertexname).scale(-scale,scale,1);
} else {
opengl.selectVertex(vertexname).scale(scale,scale,1);
}
opengl.rotate(opengl.getPathModifier(vertexname).getAngle()+90, 0, 0, 1);
Ответы
Ответ 1
Не 100% уверены, что вы здесь просите, но я думаю, что вы хотите преобразовать матрицу проекций. Если вы хотите перевернуть так, чтобы все слева было справа, вам необходимо масштабировать матрицу проекции (-1, 1, 1). Если вы хотите, чтобы наверху отображалось то, что нужно внизу, вам нужно масштабировать (1, -1, 1), и если вы хотите, вы можете масштабировать (-1, -1, 1).
Изменить на основе дополнительной информации. Если все, что вы хотите сделать, - это отобразить объект точно так же, но при перетаскивании текстуры вам нужно изменить координаты текстуры вершин в объектах - перевернуть координаты текстуры, заменив старый u текстурная координата с 1-u.
Ответ 2
Если вы используете glFrustum(l,r,b,t,n,f)
, то измените его yo glFrustum(l,r,t,b,n,f)
, если вы хотите вертикальный флип. Это относится также к функции glOrtho
.