project2.dpr
来自「Delphi7编程80例(完全版)」· DPR 代码 · 共 594 行 · 第 1/2 页
DPR
594 行
glVertex3f(0.472351, 0.0888977, 0.352966);
glEnd;
glBegin(GL_TRIANGLES);
glNormal3f(0.877521, 0.357037, 0.320127);
glVertex3f(0.408844, 0.328003, 0.260376);
glVertex3f(0.472351, 0.0888977, 0.352966);
glVertex3f(0.533997, 0.20929, 0.0497131);
glEnd;
glBegin(GL_TRIANGLES);
glNormal3f(0.999592, -0.0112823, -0.0262407);
glVertex3f(0.525299, -0.042511, -0.17334);
glVertex3f(0.533997, 0.20929, 0.0497131);
glVertex3f(0.531952, -0.152008, 0.127167);
glEnd;
glBegin(GL_TRIANGLES);
glNormal3f(0.764909, -0.303992, -0.567894);
glVertex3f(0.282532, -0.491699, -0.285278);
glVertex3f(0.191071, -0.337128, -0.491211);
glVertex3f(0.471161, -0.290833, -0.138733);
glEnd;
glBegin(GL_TRIANGLES);
glNormal3f(0.774426, -0.249842, -0.581243);
glVertex3f(0.525299, -0.042511, -0.17334);
glVertex3f(0.471161, -0.290833, -0.138733);
glVertex3f(0.312347, 0, -0.475342 );
glEnd;
glBegin(GL_TRIANGLES);
glNormal3f(0.312115, -0.0676723, -0.947631);
glVertex3f(0.00231934, 0, -0.577454 );
glVertex3f(0.312347, 0, -0.475342 );
glVertex3f(0.191071, -0.337128, -0.491211);
glEnd;
glBegin(GL_TRIANGLES);
glNormal3f(0.197739, -0.72867, 0.655698);
glVertex3f(0.00344849, -0.631836, 0.247131);
glVertex3f(0.253418, -0.528687, 0.286377);
glVertex3f(-0.0487366, -0.464478, 0.448853);
glEnd;
glBegin(GL_TRIANGLES);
glNormal3f(0.211591, -0.413455, 0.885598);
glVertex3f(0.473358, -0.170807, 0.400909);
glVertex3f(0.212646, -0.201538, 0.448853);
glVertex3f(0.253418, -0.528687, 0.286377);
glEnd;
glBegin(GL_TRIANGLES);
glNormal3f(0.108039, -0.107399, 0.988328);
glVertex3f(-0.0549011, 0, 0.5 );
glVertex3f(-0.0487366, -0.464478, 0.448853);
glVertex3f(0.212646, -0.201538, 0.448853);
glEnd;
glBegin(GL_TRIANGLES);
glNormal3f(0.942466, 0.202839, -0.265731);
glVertex3f(0.525299, -0.042511, -0.17334);
glVertex3f(0.425964, 0.25, -0.302368);
glVertex3f(0.533997, 0.20929, 0.0497131);
glEnd;
glBegin(GL_TRIANGLES);
glNormal3f(0.540665, 0.809814, -0.227778);
glVertex3f(0.170563, 0.425323, -0.285278);
glVertex3f(0.306183, 0.404633, -0.0369263);
glVertex3f(0.425964, 0.25, -0.302368);
glEnd;
glBegin(GL_TRIANGLES);
glNormal3f(0.657824, 0.75244, -0.0332111);
glVertex3f(0.408844, 0.328003, 0.260376);
glVertex3f(0.533997, 0.20929, 0.0497131);
glVertex3f(0.306183, 0.404633, -0.0369263);
glEnd;
glBegin(GL_TRIANGLES);
glNormal3f(0.467657, 0.881464, 0.0657114);
glVertex3f(0.408844, 0.328003, 0.260376);
glVertex3f(0.306183, 0.404633, -0.0369263);
glVertex3f(0.131439, 0.474701, 0.266785);
glEnd;
glBegin(GL_TRIANGLES);
glNormal3f(0.036579, 0.998664, 0.036503);
glVertex3f(-0.138153, 0.486145, 0.223846);
glVertex3f(0.131439, 0.474701, 0.266785);
glVertex3f(0.0134583, 0.491821, -0.083374);
glEnd;
glBegin(GL_TRIANGLES);
glNormal3f(0.296505, 0.951448, -0.0826477);
glVertex3f(0.170563, 0.425323, -0.285278);
glVertex3f(0.0134583, 0.491821, -0.083374);
glVertex3f(0.306183, 0.404633, -0.0369263);
glEnd;
glBegin(GL_TRIANGLES);
glNormal3f(0.818651, 0.0249238, -0.57375);
glVertex3f(0.525299, -0.042511, -0.17334);
glVertex3f(0.312347, 0, -0.475342 );
glVertex3f(0.425964, 0.25, -0.302368);
glEnd;
glBegin(GL_TRIANGLES);
glNormal3f(0.407482, 0.655568, -0.635759);
glVertex3f(0.170563, 0.425323, -0.285278);
glVertex3f(0.425964, 0.25, -0.302368);
glVertex3f(0.131378, 0.249969, -0.491211);
glEnd;
glBegin(GL_TRIANGLES);
glNormal3f(0.3086, 0.163933, -0.936959);
glVertex3f(0.00231934, 0, -0.577454 );
glVertex3f(0.131378, 0.249969, -0.491211);
glVertex3f(0.312347, 0, -0.475342 );
glEnd;
glBegin(GL_TRIANGLES);
glNormal3f(0.157363, 0.179867, 0.971022);
glVertex3f(0.473358, -0.170807, 0.400909);
glVertex3f(0.472351, 0.0888977, 0.352966);
glVertex3f(0.212646, -0.201538, 0.448853);
glEnd;
glBegin(GL_TRIANGLES);
glNormal3f(0.618173, 0.421188, 0.663674);
glVertex3f(0.408844, 0.328003, 0.260376);
glVertex3f(0.212646, 0.267761, 0.481354);
glVertex3f(0.472351, 0.0888977, 0.352966);
glEnd;
glBegin(GL_TRIANGLES);
glNormal3f(0.137357, -0.0684344, 0.988155);
glVertex3f(-0.0549011, 0, 0.5 );
glVertex3f(0.212646, -0.201538, 0.448853);
glVertex3f(0.212646, 0.267761, 0.481354);
glEnd;
glBegin(GL_TRIANGLES);
glNormal3f(-0.898457, -0.367331, -0.240507);
glVertex3f(-0.361786, -0.280945, -0.0588074);
glVertex3f(-0.475525, -0.142578, 0.154755);
glVertex3f(-0.425293, -0.0452881, -0.181488);
glEnd;
glBegin(GL_TRIANGLES);
glNormal3f(-0.990518, 0.0293809, 0.134204);
glVertex3f(-0.447205, 0.0761719, 0.315887);
glVertex3f(-0.475525, 0.224731, 0.0743408);
glVertex3f(-0.475525, -0.142578, 0.154755);
glEnd;
glBegin(GL_TRIANGLES);
glNormal3f(-0.930333, 0.145751, -0.336506);
glVertex3f(-0.361786, 0.262848, -0.223602);
glVertex3f(-0.425293, -0.0452881, -0.181488);
glVertex3f(-0.475525, 0.224731, 0.0743408);
glEnd;
glBegin(GL_TRIANGLES);
glNormal3f(-0.0915225, 0.922481, -0.375037);
glVertex3f(0.170563, 0.425323, -0.285278);
glVertex3f(-0.131439, 0.40448, -0.262848);
glVertex3f(0.0134583, 0.491821, -0.083374);
glEnd;
glBegin(GL_TRIANGLES);
glNormal3f(-0.533345, 0.770975, -0.348053);
glVertex3f(-0.361786, 0.262848, -0.223602);
glVertex3f(-0.293854, 0.415649, 0.0107727);
glVertex3f(-0.131439, 0.40448, -0.262848);
glEnd;
glBegin(GL_TRIANGLES);
glNormal3f(-0.272513, 0.955032, -0.116838);
glVertex3f(-0.138153, 0.486145, 0.223846);
glVertex3f(0.0134583, 0.491821, -0.083374);
glVertex3f(-0.293854, 0.415649, 0.0107727);
glEnd;
glBegin(GL_TRIANGLES);
glNormal3f(-0.863373, 0.378291, 0.333889);
glVertex3f(-0.447205, 0.0761719, 0.315887);
glVertex3f(-0.344055, 0.324249, 0.301544);
glVertex3f(-0.475525, 0.224731, 0.0743408);
glEnd;
glBegin(GL_TRIANGLES);
glNormal3f(-0.574288, 0.804112, 0.153612);
glVertex3f(-0.138153, 0.486145, 0.223846);
glVertex3f(-0.293854, 0.415649, 0.0107727);
glVertex3f(-0.344055, 0.324249, 0.301544);
glEnd;
glBegin(GL_TRIANGLES);
glNormal3f(-0.742204, 0.639143, -0.201568);
glVertex3f(-0.361786, 0.262848, -0.223602);
glVertex3f(-0.475525, 0.224731, 0.0743408);
glVertex3f(-0.293854, 0.415649, 0.0107727);
glEnd;
glBegin(GL_TRIANGLES);
glNormal3f(-0.100014, 0.766867, -0.633966);
glVertex3f(0.170563, 0.425323, -0.285278);
glVertex3f(0.131378, 0.249969, -0.491211);
glVertex3f(-0.131439, 0.40448, -0.262848);
glEnd;
glBegin(GL_TRIANGLES);
glNormal3f(-0.496295, 0.646655, -0.579248);
glVertex3f(-0.361786, 0.262848, -0.223602);
glVertex3f(-0.131439, 0.40448, -0.262848);
glVertex3f(-0.267548, 0.15448, -0.425323);
glEnd;
glBegin(GL_TRIANGLES);
glNormal3f(-0.245954, 0.427173, -0.870075);
glVertex3f(0.00231934, 0, -0.577454 );
glVertex3f(-0.267548, 0.15448, -0.425323);
glVertex3f(0.131378, 0.249969, -0.491211);
glEnd;
glBegin(GL_TRIANGLES);
glNormal3f(-0.838044, -0.412032, -0.357647);
glVertex3f(-0.361786, -0.280945, -0.0588074);
glVertex3f(-0.425293, -0.0452881, -0.181488);
glVertex3f(-0.267548, -0.15448, -0.425323);
glEnd;
glBegin(GL_TRIANGLES);
glNormal3f(-0.49107, 0, -0.87112 );
glVertex3f(0.00231934, 0, -0.577454 );
glVertex3f(-0.267548, -0.15448, -0.425323);
glVertex3f(-0.267548, 0.15448, -0.425323);
glEnd;
glBegin(GL_TRIANGLES);
glNormal3f(-0.874574, 0.115899, -0.470838);
glVertex3f(-0.361786, 0.262848, -0.223602);
glVertex3f(-0.267548, 0.15448, -0.425323);
glVertex3f(-0.425293, -0.0452881, -0.181488);
glEnd;
glBegin(GL_TRIANGLES);
glNormal3f(0.399242, 0.730775, 0.553691);
glVertex3f(0.408844, 0.328003, 0.260376);
glVertex3f(0.131439, 0.474701, 0.266785);
glVertex3f(0.212646, 0.267761, 0.481354);
glEnd;
glBegin(GL_TRIANGLES);
glNormal3f(-0.0385133, 0.878612, 0.475982);
glVertex3f(-0.138153, 0.486145, 0.223846);
glVertex3f(-0.0811768, 0.360779, 0.459869);
glVertex3f(0.131439, 0.474701, 0.266785);
glEnd;
glBegin(GL_TRIANGLES);
glNormal3f(-0.0385461, 0.107696, 0.993436);
glVertex3f(-0.0549011, 0, 0.5 );
glVertex3f(0.212646, 0.267761, 0.481354);
glVertex3f(-0.0811768, 0.360779, 0.459869);
glEnd;
glBegin(GL_TRIANGLES);
glNormal3f(-0.549513, 0.274117, 0.789237);
glVertex3f(-0.447205, 0.0761719, 0.315887);
glVertex3f(-0.317749, -0.0470581, 0.448822);
glVertex3f(-0.344055, 0.324249, 0.301544);
glEnd;
glBegin(GL_TRIANGLES);
glNormal3f(-0.206353, 0.0933145, 0.974018);
glVertex3f(-0.0549011, 0, 0.5 );
glVertex3f(-0.0811768, 0.360779, 0.459869);
glVertex3f(-0.317749, -0.0470581, 0.448822);
glEnd;
glBegin(GL_TRIANGLES);
glNormal3f(-0.408821, 0.761405, 0.503119);
glVertex3f(-0.138153, 0.486145, 0.223846);
glVertex3f(-0.344055, 0.324249, 0.301544);
glVertex3f(-0.0811768, 0.360779, 0.459869);
glEnd;
SwapBuffers(h_DC); // 交换帧缓冲区
glPopMatrix; // 处理当前矩阵
end; // 置于先前保存的矩阵之后
// 正式绘制Opengl场景
procedure PrepareScene;
begin
glEnable(GL_DEPTH_TEST);
glEnable(GL_CULL_FACE);
glEnable(GL_NORMALIZE);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glHint(GL_PERSPECTIVE_CORRECTION_HINT,GL_NICEST);
glMatrixMode(GL_PROJECTION);
glViewPort(0, 0, PWndWidth, PWndHeight); // 设置渲染的环境
gluPerspective(60, 400/300, 1, 100); // 设置其余的场景范围
glMatrixMode(GL_MODELVIEW);
angle := 0;
end;
begin
PrepareWindow;
h_DC := GetDC(hParentWnd); // 从创建的窗口中获得一个句柄
InitOpenGL; // 激活动态链接库
h_RC :=CreateRenderingContext(h_DC, [opDoubleBuffered], 0, 0); // 设置Opengl的渲染环境
ActivateRenderingContext(h_DC, h_RC); // 激活设备句柄
PrepareScene;
ShowWindow(hParentWnd, SW_SHOW); // 使窗口可见
// 下列消息使这个程序循环执行
repeat
PeekMessage(iMessage, 0, 0, 0, PM_REMOVE); // 解释消息
TranslateMessage(iMessage);
DispatchMessage(iMessage); // 给主窗口过程分派消息
DrawScene;
until (iMessage.message = WM_QUIT);
// 退出演示后的相关处理
DeactivateRenderingContext;
DestroyRenderingContext(h_RC);
ReleaseDC(hParentWnd, h_DC);
UnRegisterClass('glClass', hInstance);
CloseOpenGL;
DestroyWindow(hParentWnd);
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?