四角い窓に多角形を描いています。フルスクリーンなどでウィンドウのサイズを変更すると、縦横比が乱れます。参考文献から、縦横比を維持する 1 つの方法を見つけました。コードは次のとおりです。
void reshape (int width, int height) {
float cx, halfWidth = width*0.5f;
float aspect = (float)width/(float)height;
glViewport (0, 0, (GLsizei) width, (GLsizei) height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glFrustum(cx-halfWidth*aspect, cx+halfWidth*aspect, bottom, top, zNear, zFar);
glMatrixMode (GL_MODELVIEW);
}
ここで、cx は X の zNear 平面の目の空間の中心です。誰かがこれをどのように計算できるか説明していただければ幸いです。これは、glFrustum() への最初の最初の 2 つの引数の平均であるべきだと思います。私は正しいですか?どんな助けでも大歓迎です。