Java 使用四边形在lwjgl中创建球形行星

Java 使用四边形在lwjgl中创建球形行星,java,geometry,lwjgl,Java,Geometry,Lwjgl,我需要帮助弄清楚如何使用四边形创建球形行星。我需要它是四边形,因为我其余的编码使用的方法。然而,不知何故,我似乎在某个地方搞砸了,不知道在哪里。 SPLIT_FACE是我分割立方体面一侧的次数。 x和y的范围都在0到4*分割面之间 我想要一个和他们的立方体差不多的立方体。有人知道我需要做什么,我做错了什么吗 float polar[]= new float[]{(float) (((x)*Math.PI)/(2*SPLIT_FACE)),(float) ((y)*Math.PI/(2*SPLIT

我需要帮助弄清楚如何使用四边形创建球形行星。我需要它是四边形,因为我其余的编码使用的方法。然而,不知何故,我似乎在某个地方搞砸了,不知道在哪里。 SPLIT_FACE是我分割立方体面一侧的次数。 x和y的范围都在0到4*分割面之间

我想要一个和他们的立方体差不多的立方体。有人知道我需要做什么,我做错了什么吗

float polar[]= new float[]{(float) (((x)*Math.PI)/(2*SPLIT_FACE)),(float) ((y)*Math.PI/(2*SPLIT_FACE)),(float) Math.sqrt(SIZE*SIZE/2)};                             
    //this.rotY = (float) (polar[1]*(360)/(2*Math.PI)); // temporary values for 2D plane
    //this.rotX = (float) (polar[1]*(360)/(2*Math.PI));
    this.rotZ = (float) (polar[0]*(360)/(2*Math.PI));
    this.x =-(float) (Math.cos(Math.toRadians(rotZ)))*(polar[2]);
    this.y = -(float) (Math.sin(Math.toRadians(rotZ)))*polar[2];
    //this.z = -(float) (Math.sin(Math.toRadians(rotY)))*polar[2];
    rotZ+=45;
我希望这些面仍然重叠。这基本上就是我所做的,但我希望它是三维的,也就是说,绕y轴旋转。另一边的许多面看不见,但在那里,它们被剔除了

为什么不使用球面方程而不是极坐标方程?现在,您正在计算二维位置,并在同一平面上旋转它,这样就不会改变Z坐标,从而使输出平面。。。看这里是你想要的,特别是阅读edit1i如果你不需要每个四边形有相同的面积,那么就用相同的角度步长来细分球体。。。这将消除具有不同四边形计数的四边形层之间的孔