📄 shark.c
字号:
glNormal3fv(N050); glVertex3fv(P050); glNormal3fv(N051); glVertex3fv(P051); glNormal3fv(N069); glVertex3fv(P069); glEnd(); glBegin(GL_POLYGON); glNormal3fv(N051); glVertex3fv(P051); glNormal3fv(N002); glVertex3fv(P002); glNormal3fv(N069); glVertex3fv(P069); glEnd(); glBegin(GL_POLYGON); glNormal3fv(N050); glVertex3fv(P050); glNormal3fv(N069); glVertex3fv(P069); glNormal3fv(N002); glVertex3fv(P002); glEnd();}voidFish006(void){ glBegin(GL_POLYGON); glNormal3fv(N066); glVertex3fv(P066); glNormal3fv(N016); glVertex3fv(P016); glNormal3fv(N026); glVertex3fv(P026); glEnd(); glBegin(GL_POLYGON); glNormal3fv(N015); glVertex3fv(P015); glNormal3fv(N066); glVertex3fv(P066); glNormal3fv(N025); glVertex3fv(P025); glEnd(); glBegin(GL_POLYGON); glNormal3fv(N025); glVertex3fv(P025); glNormal3fv(N066); glVertex3fv(P066); glNormal3fv(N026); glVertex3fv(P026); glEnd(); glBegin(GL_POLYGON); glNormal3fv(N066); glVertex3fv(P066); glNormal3fv(N058); glVertex3fv(P058); glNormal3fv(N016); glVertex3fv(P016); glEnd(); glBegin(GL_POLYGON); glNormal3fv(N015); glVertex3fv(P015); glNormal3fv(N058); glVertex3fv(P058); glNormal3fv(N066); glVertex3fv(P066); glEnd(); glBegin(GL_POLYGON); glNormal3fv(N058); glVertex3fv(P058); glNormal3fv(N015); glVertex3fv(P015); glNormal3fv(N016); glVertex3fv(P016); glEnd();}voidFish007(void){ glBegin(GL_POLYGON); glNormal3fv(N062); glVertex3fv(P062); glNormal3fv(N022); glVertex3fv(P022); glNormal3fv(N032); glVertex3fv(P032); glEnd(); glBegin(GL_POLYGON); glNormal3fv(N062); glVertex3fv(P062); glNormal3fv(N032); glVertex3fv(P032); glNormal3fv(N064); glVertex3fv(P064); glEnd(); glBegin(GL_POLYGON); glNormal3fv(N022); glVertex3fv(P022); glNormal3fv(N062); glVertex3fv(P062); glNormal3fv(N032); glVertex3fv(P032); glEnd(); glBegin(GL_POLYGON); glNormal3fv(N062); glVertex3fv(P062); glNormal3fv(N064); glVertex3fv(P064); glNormal3fv(N032); glVertex3fv(P032); glEnd();}voidFish008(void){ glBegin(GL_POLYGON); glNormal3fv(N063); glVertex3fv(P063); glNormal3fv(N019); glVertex3fv(P019); glNormal3fv(N029); glVertex3fv(P029); glEnd(); glBegin(GL_POLYGON); glNormal3fv(N019); glVertex3fv(P019); glNormal3fv(N063); glVertex3fv(P063); glNormal3fv(N029); glVertex3fv(P029); glEnd(); glBegin(GL_POLYGON); glNormal3fv(N063); glVertex3fv(P063); glNormal3fv(N029); glVertex3fv(P029); glNormal3fv(N065); glVertex3fv(P065); glEnd(); glBegin(GL_POLYGON); glNormal3fv(N063); glVertex3fv(P063); glNormal3fv(N065); glVertex3fv(P065); glNormal3fv(N029); glVertex3fv(P029); glEnd();}voidFish009(void){ glBegin(GL_POLYGON); glVertex3fv(P059); glVertex3fv(P012); glVertex3fv(P009); glVertex3fv(P060); glEnd(); glBegin(GL_POLYGON); glVertex3fv(P012); glVertex3fv(P004); glVertex3fv(P007); glVertex3fv(P009); glEnd();}voidFish_1(void){ Fish004(); Fish005(); Fish003(); Fish007(); Fish006(); Fish002(); Fish008(); Fish009(); Fish001();}voidFish_2(void){ Fish005(); Fish004(); Fish003(); Fish008(); Fish006(); Fish002(); Fish007(); Fish009(); Fish001();}voidFish_3(void){ Fish005(); Fish004(); Fish007(); Fish003(); Fish002(); Fish008(); Fish009(); Fish001(); Fish006();}voidFish_4(void){ Fish005(); Fish004(); Fish008(); Fish003(); Fish002(); Fish007(); Fish009(); Fish001(); Fish006();}voidFish_5(void){ Fish009(); Fish006(); Fish007(); Fish001(); Fish002(); Fish003(); Fish008(); Fish004(); Fish005();}voidFish_6(void){ Fish009(); Fish006(); Fish008(); Fish001(); Fish002(); Fish007(); Fish003(); Fish004(); Fish005();}voidFish_7(void){ Fish009(); Fish001(); Fish007(); Fish005(); Fish002(); Fish008(); Fish003(); Fish004(); Fish006();}voidFish_8(void){ Fish009(); Fish008(); Fish001(); Fish002(); Fish007(); Fish003(); Fish005(); Fish004(); Fish006();}voidDrawShark(fishRec * fish){ float mat[4][4]; int n; float seg1, seg2, seg3, seg4, segup; float thrash, chomp; fish->htail = (int) (fish->htail - (int) (5.0 * fish->v)) % 360; thrash = 50.0 * fish->v; seg1 = 0.6 * thrash * sin(fish->htail * RRAD); seg2 = 1.8 * thrash * sin((fish->htail + 45.0) * RRAD); seg3 = 3.0 * thrash * sin((fish->htail + 90.0) * RRAD); seg4 = 4.0 * thrash * sin((fish->htail + 110.0) * RRAD); chomp = 0.0; if (fish->v > 2.0) { chomp = -(fish->v - 2.0) * 200.0; } P004[1] = iP004[1] + chomp; P007[1] = iP007[1] + chomp; P010[1] = iP010[1] + chomp; P011[1] = iP011[1] + chomp; P023[0] = iP023[0] + seg1; P024[0] = iP024[0] + seg1; P025[0] = iP025[0] + seg1; P026[0] = iP026[0] + seg1; P027[0] = iP027[0] + seg1; P028[0] = iP028[0] + seg1; P029[0] = iP029[0] + seg1; P030[0] = iP030[0] + seg1; P031[0] = iP031[0] + seg1; P032[0] = iP032[0] + seg1; P033[0] = iP033[0] + seg2; P034[0] = iP034[0] + seg2; P035[0] = iP035[0] + seg2; P036[0] = iP036[0] + seg2; P037[0] = iP037[0] + seg2; P038[0] = iP038[0] + seg2; P039[0] = iP039[0] + seg2; P040[0] = iP040[0] + seg2; P041[0] = iP041[0] + seg2; P042[0] = iP042[0] + seg2; P043[0] = iP043[0] + seg3; P044[0] = iP044[0] + seg3; P045[0] = iP045[0] + seg3; P046[0] = iP046[0] + seg3; P047[0] = iP047[0] + seg3; P048[0] = iP048[0] + seg3; P049[0] = iP049[0] + seg3; P050[0] = iP050[0] + seg3; P051[0] = iP051[0] + seg3; P052[0] = iP052[0] + seg3; P002[0] = iP002[0] + seg4; P061[0] = iP061[0] + seg4; P069[0] = iP069[0] + seg4; P070[0] = iP070[0] + seg4; fish->vtail += ((fish->dtheta - fish->vtail) * 0.1); if (fish->vtail > 0.5) { fish->vtail = 0.5; } else if (fish->vtail < -0.5) { fish->vtail = -0.5; } segup = thrash * fish->vtail; P023[1] = iP023[1] + segup; P024[1] = iP024[1] + segup; P025[1] = iP025[1] + segup; P026[1] = iP026[1] + segup; P027[1] = iP027[1] + segup; P028[1] = iP028[1] + segup; P029[1] = iP029[1] + segup; P030[1] = iP030[1] + segup; P031[1] = iP031[1] + segup; P032[1] = iP032[1] + segup; P033[1] = iP033[1] + segup * 5.0; P034[1] = iP034[1] + segup * 5.0; P035[1] = iP035[1] + segup * 5.0; P036[1] = iP036[1] + segup * 5.0; P037[1] = iP037[1] + segup * 5.0; P038[1] = iP038[1] + segup * 5.0; P039[1] = iP039[1] + segup * 5.0; P040[1] = iP040[1] + segup * 5.0; P041[1] = iP041[1] + segup * 5.0; P042[1] = iP042[1] + segup * 5.0; P043[1] = iP043[1] + segup * 12.0; P044[1] = iP044[1] + segup * 12.0; P045[1] = iP045[1] + segup * 12.0; P046[1] = iP046[1] + segup * 12.0; P047[1] = iP047[1] + segup * 12.0; P048[1] = iP048[1] + segup * 12.0; P049[1] = iP049[1] + segup * 12.0; P050[1] = iP050[1] + segup * 12.0; P051[1] = iP051[1] + segup * 12.0; P052[1] = iP052[1] + segup * 12.0; P002[1] = iP002[1] + segup * 17.0; P061[1] = iP061[1] + segup * 17.0; P069[1] = iP069[1] + segup * 17.0; P070[1] = iP070[1] + segup * 17.0; glPushMatrix(); glTranslatef(0.0, 0.0, -3000.0); glGetFloatv(GL_MODELVIEW_MATRIX, &mat[0][0]); n = 0; if (mat[0][2] >= 0.0) { n += 1; } if (mat[1][2] >= 0.0) { n += 2; } if (mat[2][2] >= 0.0) { n += 4; } glScalef(2.0, 1.0, 1.0); glEnable(GL_CULL_FACE); switch (n) { case 0: Fish_1(); break; case 1: Fish_2(); break; case 2: Fish_3(); break; case 3: Fish_4(); break; case 4: Fish_5(); break; case 5: Fish_6(); break; case 6: Fish_7(); break; case 7: Fish_8(); break; } glDisable(GL_CULL_FACE); glPopMatrix();}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -