ship.c

来自「OpeNGL超级宝典源代码. OpeNGL超级宝典源代码.」· C语言 代码 · 共 266 行 · 第 1/2 页

C
266
字号
{2.78075f,-2.58509f,-0.785277f},{2.78075f,0.39035f,-0.785276f},{2.81157f,-2.58509f,-0.838651f},
{2.81157f,0.39035f,-0.838649f},{2.81157f,-2.58509f,-0.731903f},{2.81157f,0.39035f,-0.731902f},
{2.8398f,-2.84922f,-0.714153f},{2.8398f,-2.03548f,-0.714153f},{2.8398f,-2.84922f,-0.714153f},
{2.87744f,-2.84922f,-1.00507f},{2.87744f,-2.03548f,-1.00507f}
};
static GLfloat normals [76][3] = {
{0.0f,0.169524f,0.985526f},{0.0f,1.0f,0.0f},{0.0f,0.52395f,-0.851749f},
{-0.476576f,0.879116f,0.005585f},{-0.478776f,0.877866f,0.011171f},{-0.474357f,0.880332f,0.0f},
{0.40881f,-0.897845f,-0.16355f},{0.502754f,-0.805534f,-0.313614f},{0.298567f,-0.954363f,-0.006966f},
{-0.465953f,-0.864051f,-0.190535f},{-0.449091f,-0.891594f,-0.058108f},{-0.474158f,-0.820453f,-0.319423f},
{0.0f,0.999643f,0.026703f},{0.0f,-0.931867f,-0.362799f},{0.0f,-0.965964f,-0.258675f},
{0.0f,-0.999979f,0.006417f},{0.49373f,0.868979f,0.033251f},{0.473096f,0.881011f,0.0f},
{0.513535f,0.855492f,0.066447f},{0.0f,0.999966f,0.00823f},{0.0f,-1.0f,0.0f},
{-0.977414f,0.043808f,0.206741f},{-0.910678f,0.085637f,0.404143f},{-1.0f,0.0f,0.0f},
{0.972556f,0.085192f,0.21651f},{0.995608f,0.093623f,0.0f},{0.903329f,0.072717f,0.42274f},
{-0.999728f,0.0f,0.023326f},{0.991733f,0.0f,0.128321f},{1.0f,0.0f,-2e-006f},
{-0.991188f,0.121908f,-0.051824f},{-0.997688f,0.064231f,-0.022218f},{-0.981069f,0.172287f,-0.088432f},
{-0.980236f,0.182064f,-0.077397f},{0.980213f,0.182009f,-0.077821f},{0.997817f,0.062408f,-0.021587f},
{0.991177f,0.121872f,-0.052108f},{0.979877f,0.177578f,-0.091148f},{-0.910678f,0.085637f,-0.404143f},
{-0.977414f,0.043808f,-0.206741f},{0.972556f,0.085192f,-0.21651f},{0.903329f,0.072717f,-0.42274f},
{-0.320358f,0.261362f,-0.910528f},{-0.348268f,0.0f,-0.937395f},{-0.270083f,0.504478f,-0.820096f},
{0.329563f,0.279843f,-0.901707f},{0.065086f,0.522839f,-0.849943f},{0.550645f,0.0f,-0.83474f},
{0.5628f,0.0f,0.826593f},{0.195276f,0.0f,0.980748f},{0.390551f,0.0f,0.920581f},
{-0.385969f,0.0f,0.922512f},{-0.192984f,0.0f,0.981202f},{-0.556743f,0.0f,0.830685f},
{0.0f,0.0f,-1.0f},{0.0f,0.168506f,0.985701f},{0.0f,0.154448f,-0.988001f},
{0.0f,0.039242f,0.99923f},{0.0f,-0.007276f,-0.999974f},{0.0f,-0.354817f,-0.934936f},
{0.0f,-0.181163f,-0.983453f},{0.0f,-0.512085f,-0.858935f},{-0.500002f,0.0f,0.866024f},
{-0.499999f,-1e-006f,0.866026f},{-0.500001f,0.0f,-0.866025f},{-0.500001f,0.0f,0.866025f},
{-0.5f,0.0f,0.866025f},{-0.500001f,-1e-006f,0.866025f},{-0.5f,0.0f,-0.866025f},
{0.0f,0.501708f,0.865037f},{0.0f,-0.88965f,0.456643f},{0.0f,0.0f,1.0f},
{0.0f,-0.488232f,0.872714f},{0.0f,0.169524f,-0.985526f},{0.0f,-0.003837f,0.999993f},
{0.0f,-0.488233f,-0.872713f}
};
static GLfloat textures [234][2] = {
{0.846339f,0.673143f},{0.773436f,0.673143f},{0.773436f,0.509194f},
{0.846339f,0.509194f},{0.863242f,0.509194f},{0.863242f,0.673143f},
{0.846339f,0.673143f},{0.846339f,0.509194f},{0.83369f,0.464792f},
{0.914127f,0.464792f},{0.914127f,0.717545f},{0.83369f,0.717545f},
{0.83369f,0.717545f},{1.01785f,0.996576f},{0.976838f,0.995619f},
{0.790375f,0.717545f},{1.01785f,0.996576f},{0.914127f,0.717545f},
{0.790375f,0.717545f},{0.976838f,0.995619f},{0.914127f,0.464792f},
{1.01785f,0.185761f},{0.976838f,0.191065f},{0.790375f,0.464792f},
{0.791976f,0.524523f},{0.791976f,0.657814f},{0.756294f,0.657814f},
{0.756294f,0.524523f},{0.989221f,0.50982f},{0.989221f,0.675094f},
{0.954011f,0.675094f},{0.954011f,0.50982f},{0.862946f,0.673143f},
{0.862946f,0.509194f},{0.87985f,0.673143f},{0.87985f,0.509194f},
{0.57694f,0.623077f},{0.57694f,0.424975f},{0.546653f,0.424975f},
{0.546653f,0.623077f},{0.633183f,0.424975f},{0.633183f,0.623077f},
{0.546653f,0.623077f},{0.546653f,0.424975f},{0.547773f,0.471791f},
{0.547773f,0.576262f},{0.507581f,0.576262f},{0.507581f,0.471791f},
{0.660871f,0.650138f},{0.536047f,0.650138f},{0.536047f,0.622185f},
{0.660871f,0.622185f},{0.660871f,0.422475f},{0.536047f,0.422475f},
{0.536047f,0.394522f},{0.660871f,0.394522f},{1.01785f,0.185761f},
{0.83369f,0.464792f},{0.790375f,0.464792f},{0.976838f,0.191065f},
{0.787769f,0.430266f},{0.903394f,0.430266f},{0.903394f,0.465931f},
{0.787769f,0.465931f},{0.787769f,0.720735f},{0.903394f,0.720735f},
{0.903394f,0.7564f},{0.787769f,0.7564f},{0.986863f,0.981811f},
{0.97934f,0.97747f},{0.986863f,0.990494f},{0.994387f,0.97747f},
{0.986864f,0.199384f},{0.97934f,0.195042f},{0.986864f,0.208067f},
{0.994387f,0.195042f},{0.015138f,0.115077f},{0.594539f,0.115077f},
{0.43537f,0.028575f},{0.015138f,0.098795f},{0.015138f,0.115077f},
{0.015138f,0.098795f},{0.657918f,0.263992f},{0.771653f,0.263992f},
{0.771653f,0.224494f},{0.657918f,0.224494f},{0.771653f,0.263992f},
{0.657918f,0.263992f},{0.657918f,0.224493f},{0.771653f,0.224493f},
{0.561438f,0.046434f},{0.67261f,0.046434f},{0.687873f,-0.00893295f},
{0.561438f,0.012064f},{0.561438f,0.046434f},{0.476851f,0.042381f},
{0.794023f,0.030281f},{0.795159f,0.202232f},{0.475907f,0.153751f},
{0.385924f,0.236421f},{0.448342f,0.23598f},{0.436488f,0.202691f},
{0.386857f,0.202506f},{0.590134f,0.153861f},{0.574769f,0.124782f},
{0.436488f,0.202691f},{0.574769f,0.124782f},{0.385924f,0.236421f},
{0.386857f,0.202506f},{0.475907f,0.153751f},{0.594539f,0.114792f},
{0.015138f,0.114792f},{0.43537f,0.201294f},{0.015138f,0.131074f},
{0.015138f,0.114792f},{0.594539f,0.114792f},{0.015138f,0.131074f},
{0.43537f,0.201294f},{0.734673f,0.874576f},{0.734673f,0.97538f},
{0.489894f,0.857747f},{0.489894f,0.742834f},{0.268166f,0.742834f},
{0.268166f,0.857747f},{0.023386f,0.975379f},{0.023386f,0.874576f},
{0.730021f,0.874576f},{0.489894f,0.742834f},{0.489894f,0.900088f},
{0.730021f,0.97538f},{0.268166f,0.742834f},{0.268166f,0.900087f},
{0.024225f,0.874576f},{0.024225f,0.975379f},{0.320565f,0.789066f},
{0.437495f,0.789066f},{0.437495f,0.887598f},{0.320565f,0.887598f},
{0.320565f,0.789066f},{0.320565f,0.901125f},{0.437495f,0.901125f},
{0.437495f,0.789066f},{0.520182f,0.71326f},{0.520182f,0.996213f},
{0.488895f,0.996213f},{0.488895f,0.71326f},{0.520182f,0.995206f},
{0.520182f,0.714096f},{0.488895f,0.714096f},{0.488895f,0.995206f},
{0.450393f,0.633508f},{0.450393f,0.688829f},{0.305407f,0.688829f},
{0.305407f,0.633508f},{0.479151f,0.814499f},{0.276649f,0.814499f},
{0.265367f,0.71326f},{0.265367f,0.996213f},{0.23408f,0.996213f},
{0.23408f,0.71326f},{0.265367f,0.995206f},{0.265367f,0.714096f},
{0.23408f,0.714096f},{0.23408f,0.995206f},{0.028721f,0.94266f},
{0.040147f,0.574073f},{0.028721f,0.574073f},{0.028721f,0.94266f},
{0.040147f,0.94266f},{0.040147f,0.94266f},{0.040147f,0.94266f},
{0.028721f,0.574073f},{0.036339f,0.574073f},{0.715105f,0.94266f},
{0.726532f,0.574073f},{0.715106f,0.574073f},{0.715105f,0.94266f},
{0.726532f,0.94266f},{0.726532f,0.574073f},{0.726532f,0.94266f},
{0.726532f,0.94266f},{0.715106f,0.574073f},{0.722723f,0.574073f},
{0.285129f,0.527934f},{0.296555f,0.248643f},{0.285129f,0.248643f},
{0.285129f,0.527934f},{0.296555f,0.527934f},{0.296555f,0.248643f},
{0.296555f,0.527934f},{0.285129f,0.248643f},{0.292746f,0.248643f},
{0.462826f,0.527934f},{0.474253f,0.248643f},{0.462826f,0.248643f},
{0.462826f,0.527934f},{0.474252f,0.527934f},{0.474253f,0.248643f},
{0.474252f,0.527934f},{0.470444f,0.248643f},{0.206191f,0.012792f},
{0.320585f,0.017893f},{0.600932f,1.34113f},{0.38366f,1.34113f},
{0.340565f,0.928481f},{0.644027f,0.928482f},{0.340565f,0.94118f},
{0.644027f,0.941181f},{0.644027f,0.928482f},{0.340565f,0.928481f},
{0.5f,1.0f},{0.083333f,1.0f},{-0.25f,1.0f},
{0.416667f,1.0f},{0.75f,1.0f},{0.083333f,1.0f},
{0.206191f,0.012792f},{0.206191f,0.012792f},{0.326575f,0.013401f},
{0.326575f,0.013401f},{0.258937f,0.818404f},{0.499123f,0.818404f},
{0.450942f,0.677332f},{0.307118f,0.677332f},{0.307118f,0.304879f},
{0.450942f,0.30488f},{0.450393f,0.634335f},{0.305407f,0.634334f},
{0.305407f,0.678323f},{0.450393f,0.678323f},{0.499123f,0.818404f},
{0.258937f,0.818404f},{0.450942f,0.677332f},{0.307118f,0.677332f}
};

/////////////////////////////////////////////
// Function to stitch the triangles together
// and draw the ship
void DrawShip(void)
    {
    int iFace, iPoint;
    
    glBegin(GL_TRIANGLES);
        for(iFace = 0; iFace < 156; iFace++)
            for(iPoint = 0; iPoint < 3; iPoint++)
                {
                glTexCoord2fv(textures[face_indicies[iFace][iPoint+6]]);
                glNormal3fv(normals[face_indicies[iFace][iPoint+3]]);
                glVertex3fv(vertices[face_indicies[iFace][iPoint]]);
                }
    glEnd();
    }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?