Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JAVA OpenGL-缩放图像以适应窗口_Java_Opengl_Resize_Image Resizing_Wavefront - Fatal编程技术网

JAVA OpenGL-缩放图像以适应窗口

JAVA OpenGL-缩放图像以适应窗口,java,opengl,resize,image-resizing,wavefront,Java,Opengl,Resize,Image Resizing,Wavefront,我写的程序有问题。目前,我正在读取一个OBJ文件并正确渲染它。但我的问题是,有些图像不适合我的窗口 我尝试使用glScalef缩放它,但图像仍然变形。(几乎总是在Z上) 下面是我如何设置窗口的: gl.glMatrixMode(GL.GL_PROJECTION); gl.glLoadIdentity(); float w = gLDrawable.getWidth(); float h = gLDrawable.getHeight(); if(w >

我写的程序有问题。目前,我正在读取一个OBJ文件并正确渲染它。但我的问题是,有些图像不适合我的窗口

我尝试使用glScalef缩放它,但图像仍然变形。(几乎总是在Z上)

下面是我如何设置窗口的:

gl.glMatrixMode(GL.GL_PROJECTION); 
    gl.glLoadIdentity(); 
    float w = gLDrawable.getWidth(); 
    float h = gLDrawable.getHeight(); 

    if(w > h) gl.glOrtho(-1.0*(w/h), 1.0*w/h, -1.0, 1.0, -1.0, 1.0); 
    else gl.glOrtho(-1.0, 1.0, -1.0*(h/w), 1.0*h/w, -1.0, 1.0); 
这是我的体重秤

        if(m.getXVertexMax() - m.getXVertexMin() >  w) gl.glScalef(w/(m.getXVertexMax() - m.getXVertexMin()), 1, 1);
    else gl.glScalef(1/(m.getXVertexMax() - m.getXVertexMin()), 1, 1);

    if(m.getYVertexMax() - m.getYVertexMin() > h) gl.glScalef(1, h/(m.getYVertexMax() - m.getYVertexMin()), 1);
    else gl.glScalef(1, 1/(m.getYVertexMax() - m.getYVertexMin()), 1);

    gl.glScalef(1, 1, (1/(m.getZVertexMax() - m.getZVertexMin())));

无论我尝试什么,图像总是要么x短,要么z大


有人能帮我一下吗?谢谢:-)

您需要均匀缩放,如果您缩放X轴,请按相同的量缩放Y和Z。

非常感谢!真的,我是OpenGL新手,所以这可能是一个很难回答的问题,但你的回答让我意识到什么是“基本的”。。。。再次感谢你!:-)