FADEOUT.CPP
上传用户:wszmarenbt
上传日期:2013-04-26
资源大小:2552k
文件大小:2k
源码类别:

Windows编程

开发平台:

Visual C++

  1. #include<graphics.h>
  2. #include<conio.h>
  3. #include<dos.h>
  4. void FADEOUT(void);
  5. void DRAWPICTURE(void);
  6. void main()
  7. {
  8. int driver=DETECT,mode;
  9. int NUM1,NUM2;
  10. registerbgidriver(EGAVGA_driver);
  11. initgraph(&driver,&mode,"");
  12. DRAWPICTURE();
  13. FADEOUT();
  14. getch();
  15. closegraph();
  16. }
  17. void DRAWPICTURE(void)
  18. {
  19. void DRAWCIRCLE(int X,int Y,int R,int COLOR);
  20. void DRAWANGLE(int X1,int Y1,int X2,int Y2,int X3,int Y3,int COLOR);
  21. bar(0,0,639,479);
  22. setfillstyle(1,LIGHTGRAY);
  23. floodfill(1,1,LIGHTGRAY);
  24. DRAWANGLE(50,20,450,150,550,30,WHITE);
  25. DRAWANGLE(70,80,200,150,290,90,RED);
  26. DRAWANGLE(100,170,230,160,300,190,11);
  27. DRAWANGLE(350,250,450,150,560,200,12);
  28. DRAWANGLE(50,300,160,260,390,480,RED);
  29. DRAWCIRCLE(200,350,80,RED);
  30. DRAWCIRCLE(450,100,80,13);
  31. DRAWCIRCLE(450,300,150,YELLOW);
  32. DRAWCIRCLE(100,150,100,BLUE);
  33. }
  34. void DRAWANGLE(int X1,int Y1,int X2,int Y2,int X3,int Y3,int COLOR)
  35. {
  36. int DATAARRAY[8];
  37. DATAARRAY[0]=X1;
  38. DATAARRAY[1]=Y1;
  39. DATAARRAY[2]=X2;
  40. DATAARRAY[3]=Y2;
  41. DATAARRAY[4]=X3;
  42. DATAARRAY[5]=Y3;
  43. DATAARRAY[6]=X1;
  44. DATAARRAY[7]=Y1;
  45. setcolor(COLOR);
  46. drawpoly(4,DATAARRAY);
  47. }
  48. void DRAWCIRCLE(int X,int Y,int R,int COLOR)
  49. {
  50. setcolor(COLOR);
  51. circle(X,Y,R);
  52. setfillstyle(1,COLOR);
  53. floodfill(X,Y,COLOR);
  54. }
  55. void FADEOUT(void)
  56. {
  57. char R[256],G[256],B[256];
  58. char RR[256],GG[256],BB[256];
  59. int NUM,NOTFINISH;
  60. for(NUM=0;NUM<256;NUM++)
  61. {
  62. outportb(0x3c7,NUM);
  63. R[NUM]=RR[NUM]=inportb(0x3c9);
  64. G[NUM]=GG[NUM]=inportb(0x3c9);
  65. B[NUM]=BB[NUM]=inportb(0x3c9);
  66. }
  67. for(NUM=0;NUM<256;NUM++)
  68. {
  69. R[NUM]=0;
  70. G[NUM]=0;
  71. B[NUM]=0;
  72. outportb(0x3c8,NUM);
  73. outportb(0x3c9,0);
  74. outportb(0x3c9,0);
  75. outportb(0x3c9,0);
  76. }
  77. delay(100);
  78. NOTFINISH=1;
  79. while(NOTFINISH==1)
  80. {
  81. NOTFINISH=0;
  82. for(NUM=0;NUM<256;NUM++)
  83. {
  84. if(R[NUM]!=RR[NUM])
  85. {
  86. NOTFINISH=1;
  87. R[NUM]++;
  88. }
  89. if(G[NUM]!=GG[NUM])
  90. {
  91. NOTFINISH=1;
  92. G[NUM]++;
  93. }
  94. if(B[NUM]!=BB[NUM])
  95. {
  96. NOTFINISH=1;
  97. B[NUM]++;
  98. }
  99. outportb(0x3c8,NUM);
  100. outportb(0x3c9,R[NUM]);
  101. outportb(0x3c9,G[NUM]);
  102. outportb(0x3c9,B[NUM]);
  103. }
  104. delay(50);
  105. }
  106. }