如何在 onDraw
方法中翻转或镜像图像
对象(不是屏幕)?
我尝试了
scale(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);
不是100%确定你在这里问的是什么,但我认为你想要做的是变换投影矩阵。如果你想翻转以使左边的东西出现在右边,那么你需要将投影矩阵缩放 (-1, 1, 1)。如果您希望顶部的内容出现在底部,您需要按 (1,-1, 1) 缩放,如果您想要两者,则可以缩放 (-1, -1, 1)。
基于额外信息进行编辑:如果您只想显示完全相同的对象,但纹理翻转,则需要更改对象中顶点的纹理坐标 - 通过替换旧的 u 纹理来翻转纹理坐标与 1-u 协调。
如果您正在使用
glFrustum(l,r,b,t,n,f)
,则将其更改为 glFrustum(l,r,t,b,n,f)
,以防您想要垂直翻转。这也适用于 glOrtho
功能。