Mickey Mouse.c
上传用户:xlb2836
上传日期:2021-12-20
资源大小:1k
文件大小:4k
源码类别:

2D图形编程

开发平台:

C++ Builder

  1. #include<graphics.h>
  2. #include<dos.h>
  3. #include<conio.h>
  4. #include<alloc.h>
  5. int initgraphics();
  6. void  *buf;
  7. void firstleft();
  8. void secondleft();
  9. int initgraphics()
  10. {
  11. int gd=VGA,gm=VGAHI;
  12. int res;
  13. initgraph(&gd,&gm,"c:\tc\bgi");
  14. res=graphresult();
  15. if(res!=grOk)return -1;
  16. return 0;
  17. }
  18. void main()
  19. {
  20. int i=0,area;
  21. if(initgraphics()==-1)
  22. {
  23. printf("nGrphics initialization error.Cannot continue");
  24. getch();
  25. return;
  26. }
  27. rectangle(0,0,getmaxx(),getmaxy());
  28. arc(240,120,40,140,70);
  29. ellipse(165,80,10,280,20,20);
  30. ellipse(315,80,-100,170,20,20);
  31. arc(235,120,163,215,70);
  32. arc(245,120,-35,17,70);
  33. ellipse(193,178,85,280,40,20);
  34. ellipse(283,178,-100,95,40,20);
  35. ellipse(238,199,180,0,39,50);
  36. ellipse(213,123,44,240,33,40);
  37. ellipse(262,123,-60,135,33,40);
  38. ellipse(210,123,0,360,13,20);//left eye
  39. ellipse(265,123,0,360,13,20);//right eye
  40. ellipse(210,133,0,360,10,10);//left eye ball
  41. ellipse(265,133,0,360,10,10);//right eye ball
  42. ellipse(210,133,0,360,3,3);//left eye ball
  43. ellipse(265,133,0,360,3,3);//right eye ball
  44. ellipse(238,160,0,360,10,13);//nose
  45. arc(240,125,228,312,68);//mouth
  46. arc(240,120,230,310,72);//mouth
  47. setfillstyle(1,4);
  48. floodfill(238,160,15);//nose
  49. setfillstyle(1,15);
  50. floodfill(210,113,15);
  51. floodfill(265,113,15);
  52. setfillstyle(1,9);
  53. floodfill(210,100,15);
  54. setfillstyle(1,1);
  55. floodfill(315,80,15);
  56. moveto(203,220);
  57. lineto(203,260);
  58. lineto(183,260);
  59. lineto(183,350);
  60. lineto(293,350);
  61. lineto(293,260);
  62. lineto(273,260);
  63. lineto(273,220);
  64. moveto(183,350);
  65. lineto(173,460);
  66. lineto(213,460);
  67. lineto(238,400);
  68. lineto(263,460);
  69. lineto(303,460);
  70. lineto(293,350);
  71. moveto(173,460);
  72. lineto(143,478);
  73. lineto(213,478);
  74. lineto(213,460);
  75. moveto(263,460);
  76. lineto(263,478);
  77. lineto(333,478);
  78. lineto(303,460);
  79. line(238,400,238,350);
  80. //right hand
  81. moveto(183,260);
  82. lineto(113,310);
  83. lineto(183,375);
  84. moveto(183,280);
  85. lineto(137,310);
  86. lineto(181,353);
  87. setfillstyle(2,13);
  88. floodfill(190,300,15);
  89. setfillstyle(1,5);
  90. floodfill(223,400,15);
  91. setfillstyle(1,5);
  92. floodfill(253,400,15);
  93. setfillstyle(1,6);
  94. floodfill(173,470,15);
  95. floodfill(303,470,15);
  96. //fingers
  97. secondleft();
  98. ellipse(413.5,228,0,180,3.5,3.5);
  99. line(420,240,433,240);
  100. line(423,247,440,247);
  101. line(413,240,410,228);
  102. line(417,228,420,240);
  103. ellipse(433,243.5,-90,90,3.5,3.5);
  104. line(423,254,440,254);
  105. ellipse(440,250.5,-90,90,3.5,3.5);
  106. ellipse(430,257,-90,90,3,3);
  107. line(413,260,430,260);
  108. area=imagesize(409,224,444,261);
  109. buf=malloc(area);
  110. getimage(409,224,444,261,buf);
  111. while(!kbhit())
  112. {
  113. if(i==0)
  114. {
  115. setfillstyle(1,15);
  116. setcolor(15);
  117. ellipse(210,133,0,360,10,10);//left eye ball
  118. ellipse(265,133,0,360,10,10);//right eye ball
  119. setcolor(0);
  120. ellipse(210,133,0,360,3,3);//left eye ball
  121. ellipse(265,133,0,360,3,3);//right eye ball
  122. floodfill(210,133,15);
  123. floodfill(265,133,15);
  124. setcolor(0);
  125. putimage(391,209,buf,1);
  126. firstleft();
  127. setcolor(15);
  128. secondleft();
  129. putimage(409,224,buf,0);
  130. i=1;
  131. }
  132. else
  133. {
  134. setfillstyle(1,0);
  135. setcolor(0);
  136. ellipse(210,133,0,360,10,10);//left eye ball
  137. ellipse(265,133,0,360,10,10);//right eye ball
  138. floodfill(210,133,0);
  139. floodfill(265,133,0);
  140. setcolor(15);
  141. ellipse(210,133,0,360,3,3);//left eye ball
  142. ellipse(265,133,0,360,3,3);//right eye ball
  143. floodfill(210,133,15);
  144. floodfill(265,133,15);
  145. setcolor(0);
  146. putimage(409,224,buf,1);
  147. secondleft();
  148. setcolor(15);
  149. firstleft();
  150. putimage(391,209,buf,0);
  151. i=0;
  152. }
  153. delay(300);
  154. }
  155. getch();
  156. }
  157. void firstleft()
  158. {
  159. moveto(293,260);
  160. lineto(353,276);
  161. lineto(395,223);
  162. moveto(293,280);
  163. lineto(355,296);
  164. lineto(395,245);
  165. }
  166. void secondleft()
  167. {
  168. moveto(293,260);
  169. lineto(363,280);
  170. lineto(413,240);
  171. moveto(293,280);
  172. lineto(363,300);
  173. lineto(413,260);
  174. }