bambooflow Note

Sphere

最終更新:

bambooflow

- view
メンバー限定 登録/ログイン

球体メモ



void drawSphere(double r, int lats, int longs)
{
    int i, j;
    for (i=0; i<=lats; i++) {
        double lat0 = M_PI * (-0.5 + (double)(i-1)/(double)lats);
        double z0 = sin(lat0);
        double zr0 = cos(lat0);
 
        double lat1 = M_PI * (-0.5 + (double)i/(double)lats);
        double z1 = sin(lat1);
        double zr1 = cos(lat1);
 
        glBegin(GL_QUAD_STRIP);
        for (j=0; j<=longs; j++) {
            double lng = 2.0 * M_PI * (double)(j-1)/(double)longs;
            double x = cos(lng);
            double y = -sin(lng);
 
            glNormal3f(x * zr0, y * zr0, z0);
            glVertex3f(x * zr0, y * zr0, z0);
            glNormal3f(x * zr1, y * zr1, z1);
            glVertex3f(x * zr1, y * zr1, z1);
        }
        glEnd();
    }
}
 
 
記事メニュー
ウィキ募集バナー