利用canvas画布画哆啦A梦

梦里梦外; 2022-12-01 01:26 423阅读 0赞

简易版哆啦A梦源代码:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>哆啦A梦</title>
  5. <meta charset="utf-8">
  6. </head>
  7. <body>
  8. <canvas width="400px" height="600px" id="canvas" ></canvas>
  9. <script>
  10. window.onload = function(){
  11. //圆圆的脑袋
  12. var cxt = document.getElementById("canvas").getContext("2d");
  13. cxt.beginPath();
  14. cxt.lineWidth=1;
  15. cxt.strokeStyle="black";
  16. cxt.arc(200,175,175,0.7*Math.PI,0.3*Math.PI);
  17. // createRadialGradient() 方法创建放射状/圆形渐变对象。
  18. var head = cxt.createRadialGradient(260,25,8,200,175,175);
  19. // addColorStop规定渐变对象中的颜色和停止位置。
  20. // stop 介于 0.0 与 1.0 之间的值,表示渐变中开始与结束之间的位置。
  21. // color 在 stop 位置显示的 CSS 颜色值。
  22. head.addColorStop(0,"white")
  23. head.addColorStop(1,"#16B3DC");
  24. cxt.fillStyle=head;
  25. cxt.fill();
  26. cxt.stroke();
  27. // 白白的脸蛋
  28. cxt.beginPath();
  29. cxt.fillStyle='white';
  30. cxt.moveTo(110,110);
  31. cxt.quadraticCurveTo(-10,200,120,315);
  32. cxt.lineTo(280,315);
  33. cxt.quadraticCurveTo(410,210,290,110);
  34. cxt.lineTo(110,110);
  35. cxt.stroke();
  36. cxt.fill();
  37. //大大的眼睛
  38. cxt.beginPath();
  39. cxt.lineWidth=1;
  40. cxt.fillStyle='white';
  41. cxt.moveTo(110,100);
  42. cxt.bezierCurveTo(110,25,200,25,200,100);
  43. cxt.bezierCurveTo(200,175,110,175,110,100);
  44. cxt.moveTo(200,100);
  45. cxt.bezierCurveTo(200,25,290,25,290,100);
  46. cxt.bezierCurveTo(290,175,200,175,200,100);
  47. cxt.fill();
  48. cxt.stroke();
  49. //红红的鼻子
  50. cxt.beginPath();
  51. cxt.arc(200,165,25,0,2*Math.PI);
  52. var radial = cxt.createRadialGradient(212,155,3,200,165,25);
  53. radial.addColorStop(0,"white");
  54. radial.addColorStop(1,"#D05823");
  55. cxt.fillStyle=radial;
  56. cxt.fill();
  57. cxt.stroke();
  58. //黑黑的眼珠
  59. cxt.beginPath();
  60. cxt.fillStyle="black";
  61. doraemon(cxt,230,130);
  62. cxt.fill();
  63. cxt.stroke();
  64. cxt.beginPath();
  65. cxt.fillStyle="black";
  66. doraemon(cxt,170,130);
  67. cxt.fill();
  68. cxt.stroke();
  69. //长长的胡子
  70. cxt.beginPath();
  71. cxt.moveTo(80,175);
  72. cxt.lineTo(150,195);
  73. cxt.moveTo(80,200);
  74. cxt.lineTo(150,205);
  75. cxt.moveTo(80,225);
  76. cxt.lineTo(150,215);
  77. cxt.moveTo(200,195);
  78. cxt.lineTo(200,290);
  79. cxt.moveTo(250,195);
  80. cxt.lineTo(320,175);
  81. cxt.moveTo(250,205);
  82. cxt.lineTo(320,200);
  83. cxt.moveTo(250,215);
  84. cxt.lineTo(320,225);
  85. cxt.moveTo(80,240);
  86. cxt.quadraticCurveTo(200,350,320,240);
  87. cxt.stroke();
  88. cxt.beginPath();
  89. cxt.moveTo(96,316);
  90. cxt.lineTo(305,316);
  91. cxt.lineTo(320,316);
  92. cxt.arcTo(330,316,330,326,10);
  93. cxt.lineTo(330,336);
  94. cxt.arcTo(330,346,305,346,10);
  95. cxt.lineTo(81,346);
  96. cxt.arcTo(71,346,71,336,10);
  97. cxt.lineTo(71,326);
  98. cxt.arcTo(71,316,81,316,10);
  99. cxt.lineTo(96,316);
  100. //美美的项链
  101. var neck = cxt.createLinearGradient(96,316,305,316);
  102. neck.addColorStop(0,"#B13209");
  103. neck.addColorStop(1,"white");
  104. cxt.fillStyle=neck;
  105. cxt.fill();
  106. cxt.stroke();
  107. //短短的肉腿
  108. cxt.beginPath();
  109. cxt.fillStyle="#0BB0DA";
  110. cxt.moveTo(80,346);
  111. cxt.lineTo(26,406);
  112. cxt.lineTo(65,440);
  113. cxt.lineTo(85,418);
  114. cxt.lineTo(85,528);
  115. cxt.lineTo(185,528);
  116. cxt.bezierCurveTo(185,505,215,505,215,528);
  117. cxt.lineTo(315,528);
  118. cxt.lineTo(315,418);
  119. cxt.lineTo(337,440);
  120. cxt.lineTo(374,406);
  121. cxt.lineTo(320,346);
  122. cxt.fill();
  123. cxt.stroke();
  124. //胖胖的手掌
  125. cxt.beginPath();
  126. cxt.fillStyle='white';
  127. cxt.arc(32,438,32,0,2*Math.PI);
  128. cxt.fill();
  129. cxt.stroke();
  130. //胖胖的手掌
  131. cxt.beginPath();
  132. cxt.fillStyle='white';
  133. cxt.arc(368,438,32,0,2*Math.PI);
  134. cxt.fill();
  135. cxt.stroke();
  136. //可可爱爱肚兜
  137. cxt.beginPath();
  138. cxt.fillStyle="white";
  139. cxt.arc(200,399,90,1.8*Math.PI,1.2*Math.PI);
  140. cxt.fill();
  141. cxt.stroke();
  142. cxt.beginPath();
  143. cxt.moveTo(130,399);
  144. cxt.lineTo(270,399);
  145. cxt.bezierCurveTo(270,489,130,489,130,399);
  146. cxt.stroke();
  147. //叮叮当当
  148. cxt.beginPath();
  149. cxt.arc(200,358,28,0,2*Math.PI);
  150. var neck = cxt.createRadialGradient(220,340,0,200,358,30);
  151. neck.addColorStop(0,"white");
  152. neck.addColorStop(1,"#F1EB55");
  153. cxt.fillStyle=neck;
  154. cxt.fill();
  155. cxt.stroke();
  156. cxt.beginPath();
  157. cxt.moveTo(178,340);
  158. cxt.lineTo(222,340);
  159. cxt.moveTo(173,349);
  160. cxt.lineTo(226,349);
  161. cxt.moveTo(200,367);
  162. cxt.lineTo(200,387);
  163. cxt.stroke();
  164. cxt.beginPath();
  165. cxt.fillStyle="black";
  166. cxt.arc(200,363,8,0,2*Math.PI);
  167. cxt.fill();
  168. cxt.stroke();
  169. //谁的白脚
  170. cxt.beginPath();
  171. cxt.moveTo(85,528),
  172. cxt.lineTo(75,528),
  173. cxt.bezierCurveTo(50,528,50,562,75,562);
  174. cxt.lineTo(185,562);
  175. cxt.bezierCurveTo(204,562,204,528,185,528);
  176. cxt.stroke();
  177. //哦原来是你的
  178. cxt.beginPath();
  179. cxt.moveTo(215,528),
  180. cxt.bezierCurveTo(196,528,196,562,215,562);
  181. cxt.lineTo(325,562);
  182. cxt.bezierCurveTo(345,562,345,528,325,528);
  183. cxt.lineTo(315,528);
  184. cxt.stroke();
  185. }
  186. //两眼珠的共同方法
  187. function doraemon(cxt,x,y){
  188. cxt.arc(x,y,12,0,2*Math.PI);
  189. }
  190. </script>
  191. </body>
  192. </html>

利用原生js获取坐标:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>DOM事件</title>
  5. <meta charset="utf-8">
  6. </head>
  7. <body>
  8. <style>
  9. body{ margin: 0 auto;}
  10. div{ width: 100px;height: 100px;border:1px solid black}
  11. </style>
  12. <div id="d1" >x的值为:</div>
  13. <div id="d2">y的值为:</div>
  14. <div id="d3" >x1的值为:</div>
  15. <div id="d4">y1的值为:</div>
  16. <!-- <img src="img\index1.jpg" id="img" onclick="add()"> -->
  17. <script>
  18. document.body.onmousemove = function(){
  19. var x = event.clientX;
  20. var y = event.clientY;
  21. document.getElementById("d1").innerHTML ="x的坐标为:"+ x
  22. document.getElementById("d2").innerHTML ="y的坐标为:"+ y
  23. console.log(x+"-------"+y)
  24. // var img = document.getElementById("img")
  25. // img.onmousemove = function(){
  26. var x1 = event.screenX;
  27. var y1 = event.screenY;
  28. document.getElementById("d3").innerHTML ="x1的坐标为:"+ x1
  29. document.getElementById("d4").innerHTML ="y1的坐标为:"+ y1
  30. }
  31. </script>
  32. </body>
  33. </html>

发表评论

表情:
评论列表 (有 0 条评论,423人围观)

还没有评论,来说两句吧...

相关阅读