私は OpenGL を使用しており、画像を反転したいと考えていました。だから私はここに行き、質問をしました、そして最終的に私は次のコードを持っていました:
glMatrixMode(GL_PROJECTION);
glScalef(-1,1,1);
glTranslatef(-width(),0,0);
これから私が理解していることから、すべてのピクセルの位置が反転するため、画像の右側にあったピクセルは同じ絶対位置になりましたが、画像の左側にあるため、全体を移動する必要がありますwidth: 360 (これは「キャンバス」のサイズであるため、スニペントでは関数width()
が使用されています) と正確に同じ数のピクセルが返されます。したがって、このプロセスを元に戻すには、画像をもう一度反転してから元の場所に戻します。
glMatrixMode(GL_PROJECTION);
glScalef(-1,1,1);
glTranslatef(width(),0,0);
いいえ、ブラックスクリーン。反転を元に戻すには、まったく同じことを 2 回行う必要があります。画像を反転するたびに、-360 で移動する必要があります。なんで?