YZM1.CPP
Upload User: fjejplh001
Upload Date: 2007-06-11
Package Size: 324k
Code Size: 2k
Category:

3D Graphic

Development Platform:

Visual C++

  1. // YZM1.cpp: implementation of the CYZM1 class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #include "stdafx.h"
  5. #include "Visual.h"
  6. #include "YZM1.h"
  7. #ifdef _DEBUG
  8. #undef THIS_FILE
  9. static char THIS_FILE[]=__FILE__;
  10. #define new DEBUG_NEW
  11. #endif
  12. //////////////////////////////////////////////////////////////////////
  13. // Construction/Destruction
  14. //////////////////////////////////////////////////////////////////////
  15. IMPLEMENT_SERIAL(CYZM1,CObject,1)
  16. CYZM1::CYZM1()
  17. {
  18. }
  19. CYZM1::CYZM1(double m_YZM1x,double m_YZM1y,double m_YZM1z,double m_YZM1r,double m_YZM1h,double m_YZM1RX,double m_YZM1RY,double m_YZM1RZ,float m_YZM1CR,float m_YZM1CG,float m_YZM1CB)
  20. {
  21. YZM1x=m_YZM1x;   YZM1y=m_YZM1y;   YZM1z=m_YZM1z;
  22. YZM1r=m_YZM1r;   YZM1h=m_YZM1h;   
  23. YZM1RX=m_YZM1RX; YZM1RY=m_YZM1RY; YZM1RZ=m_YZM1RZ;
  24. YZM1CR=m_YZM1CR; YZM1CG=m_YZM1CG; YZM1CB=m_YZM1CB;
  25. }
  26. CYZM1::~CYZM1()
  27. {
  28. }
  29. void CYZM1::Serialize(CArchive& ar) //存贮所绘图形的各项参数
  30. {
  31. CObject::Serialize(ar);
  32. if(ar.IsStoring())
  33. {
  34. ar<<YZM1x; ar<<YZM1y; ar<<YZM1z;
  35. ar<<YZM1r; ar<<YZM1h;
  36. ar<<YZM1RX; ar<<YZM1RY; ar<<YZM1RZ;
  37. ar<<YZM1CR; ar<<YZM1CG; ar<<YZM1CB;
  38. }
  39. else
  40. {
  41. ar>>YZM1x; ar>>YZM1y; ar>>YZM1z;
  42. ar>>YZM1r; ar>>YZM1h;
  43. ar>>YZM1RX; ar>>YZM1RY; ar>>YZM1RZ;
  44. ar>>YZM1CR; ar>>YZM1CG; ar>>YZM1CB;
  45. }
  46. }
  47. void CYZM1::DrawYZM1Self() //绘制圆锥体
  48. {
  49. glPushMatrix();
  50. glColor3f(YZM1CR,YZM1CG,YZM1CB); //所绘图形的颜色
  51. glTranslated(YZM1x,YZM1y,YZM1z); //所绘图形距原点的距离
  52. glRotated(YZM1RX-180,1,0,0); //所绘图形绕X轴旋转角度
  53. glRotated(YZM1RY,0,1,0); //所绘图形绕Y轴旋转角度
  54. glRotated(YZM1RZ,0,0,1); //所绘图形绕Z轴旋转角度
  55. GLUquadricObj* YZM1Obj;
  56. YZM1Obj=gluNewQuadric();
  57. gluQuadricDrawStyle(YZM1Obj,GLU_FILL);
  58. gluQuadricNormals(YZM1Obj,GLU_SMOOTH);
  59. gluQuadricOrientation(YZM1Obj,GLU_OUTSIDE);
  60. gluCylinder(YZM1Obj,0,YZM1r,YZM1h,25,25); //圆锥体锥面
  61. glTranslated(0,0,YZM1h);
  62. gluDisk(YZM1Obj,0,YZM1r,25,25); //圆锥体底面
  63. glPopMatrix();
  64. }