最近不是小猪佩奇很火嘛!!! 前几天 在知乎 看见了别人大佬用python写的 小猪佩奇,  顿时想学 ,可是 自己 没学过python(自己就会爬爬图片,,,,几个月没用 又丢了)

然后 就想画一个  百度了一下 javascript  基本没用 只能自己写了   然后瞄准了canvas  画布

于是自己研究了一下  写出来了,(假如是大神的话 就知道 我写的不怎么好 代码用的太多了  感觉很多代码都没用  可是 删了又会出错,  不知道 怎么优化  这也是在学校时候无聊弄的!)

下面贴图贴代码!!!

  1. <canvas id="myCanvas" width="400" height="500" style="border: 1px solid #808080; margin-left:400px;" onmousemove="cnvs_getCoordinates(event);" onmouseout="cnvs_clearCoordinates();">看不见我!!!</canvas>
  2.  
  3. <script>
  4.  
  5. FunPig();
  6. //小猪佩奇
  7. function FunPig() {
  8.  
  9. var ct = document.getElementById('myCanvas').getContext('2d');
  10.  
  11. ct.beginPath() //开始
  12. ct.lineWidth = "3";
  13. ct.strokeStyle = "pink";
  14. //起点
  15. ct.moveTo(75, 15); //控制范围 结束
  16. //context.quadraticCurveTo(cpx, cpy, x, y);
  17. ct.quadraticCurveTo(220, 26, 220, 160); //第一步
  18.  
  19. ct.moveTo(219, 141);
  20. ct.quadraticCurveTo(240, 300, 70, 250); //第三步
  21. // ct.stroke()
  22. ct.moveTo(76, 253);
  23. ct.quadraticCurveTo(16, 220, 74, 111);
  24.  
  25. ct.moveTo(73, 112);
  26. ct.quadraticCurveTo(60, 112, 31, 83);
  27. ct.moveTo(31, 83);
  28. ct.quadraticCurveTo(23, 26, 75, 15);
  29. ct.moveTo(75, 15);
  30. ct.quadraticCurveTo(108, 32, 99, 61);
  31. ct.moveTo(99, 61);
  32. ct.quadraticCurveTo(66, 101, 31, 81);
  33. ct.stroke();
  34. // 鼻子的两个孔
  35. ct.beginPath();
  36. ct.arc(48, 48, 6, 0 * Math.PI, 2.5 * Math.PI);
  37. ct.stroke();
  38. ct.beginPath();
  39. ct.arc(77, 48, 6, 0 * Math.PI, 2.5 * Math.PI);
  40. ct.stroke();
  41. //耳朵
  42.  
  43. //左耳朵
  44. ct.beginPath();
  45. ct.moveTo(149, 31);
  46. ct.quadraticCurveTo(155, 0, 189, 6);
  47. ct.moveTo(189, 6);
  48. ct.quadraticCurveTo(188, 30, 170, 44);
  49. //右耳朵
  50. ct.moveTo(188, 59);
  51. ct.quadraticCurveTo(198, 24, 222, 32);
  52. ct.moveTo(222, 32);
  53. ct.quadraticCurveTo(255, 54, 199, 75);
  54. ct.stroke();
  55.  
  56. //嘴巴
  57. ct.beginPath();
  58. ct.arc(93, 178, 30, 0 * Math.PI, 2.5 * Math.PI);
  59. ct.stroke();
  60. //眼睛
  61. ct.beginPath();
  62. ct.strokeStyle = " #BDBDBD";
  63.  
  64. ct.arc(141, 67, 14, 0 * Math.PI, 2.5 * Math.PI);
  65.  
  66. ct.stroke();
  67. ct.beginPath();
  68. ct.strokeStyle = "#000000";
  69.  
  70. ct.arc(136, 64, 6, 0 * Math.PI, 2.5 * Math.PI);
  71. ct.stroke();
  72.  
  73. ct.beginPath();
  74. ct.strokeStyle = " #BDBDBD";
  75.  
  76. ct.arc(170, 88, 14, 0 * Math.PI, 2.5 * Math.PI);
  77. ct.stroke();
  78. ct.beginPath();
  79. ct.strokeStyle = "#000000";
  80. ct.fillStyle = "#FF0000";
  81. ct.arc(165, 87, 6, 0 * Math.PI, 2.5 * Math.PI);
  82. ct.stroke();
  83.  
  84. // 粉红嘴腮
  85. ct.beginPath();
  86.  
  87. ct.strokeStyle = " #CD8C95";
  88. ct.arc(178, 147, 20, 0 * Math.PI, 2.5 * Math.PI);
  89. ct.stroke();
  90.  
  91. //身体
  92. ct.beginPath();
  93. ct.strokeStyle = "red";
  94. ct.moveTo(195, 245);
  95. ct.quadraticCurveTo(215, 215, 244, 410);
  96. ct.moveTo(244, 410);
  97. ct.quadraticCurveTo(244, 410, 38, 410);
  98. ct.moveTo(38, 410);
  99. ct.quadraticCurveTo(11, 410, 76, 251);
  100. ct.stroke();
  101.  
  102. //两只手
  103.  
  104. ct.beginPath();
  105. ct.strokeStyle = "pink";
  106. ct.moveTo(58, 294);
  107. ct.quadraticCurveTo(50, 288, 12, 238);
  108. ct.moveTo(56, 300);
  109. ct.quadraticCurveTo(56, 300, 16, 260);
  110. ct.lineTo(3, 269);
  111. ct.lineTo(11, 250);
  112. ct.lineTo(3, 228);
  113. ct.lineTo(15, 241);
  114. ct.stroke();
  115. //右手
  116. ct.beginPath();
  117. ct.moveTo(223, 292);
  118. ct.quadraticCurveTo(266, 288, 287, 271);
  119. ct.moveTo(287, 271);
  120. ct.quadraticCurveTo(236, 233, 279, 245);
  121. ct.moveTo(279, 245);
  122. ct.quadraticCurveTo(255, 200, 295, 247);
  123. ct.moveTo(295, 247);
  124. ct.quadraticCurveTo(288, 200, 306, 226);
  125. ct.moveTo(306, 226);
  126. ct.quadraticCurveTo(311, 250, 308, 248);
  127. ct.moveTo(308, 248);
  128. ct.quadraticCurveTo(344, 200, 334, 245);
  129. ct.moveTo(334, 245);
  130. ct.quadraticCurveTo(311, 280, 300, 280);
  131. ct.moveTo(300, 280);
  132. ct.quadraticCurveTo(311, 280, 224, 303);
  133. ct.stroke();
  134. ct.beginPath();
  135. ct.moveTo(94, 409);
  136. ct.quadraticCurveTo(94, 409, 96, 451);
  137. ct.moveTo(96, 451);
  138. ct.quadraticCurveTo(53, 429, 56, 461);
  139. ct.moveTo(56, 461);
  140. ct.quadraticCurveTo(56, 461, 107, 464);
  141. ct.lineTo(106, 409);
  142. ct.moveTo(183, 411);
  143. ct.lineTo(182, 447);
  144. ct.quadraticCurveTo(124, 434, 136, 464);
  145. ct.lineTo(196, 463);
  146. ct.lineTo(195, 409);
  147. ct.stroke();
  148. ct.beginPath();
  149. ct.lineWidth = "7";
  150. ct.strokeStyle = "pink";
  151. ct.lineCap = "round";
  152. ct.moveTo(238,360);
  153. ct.quadraticCurveTo(266, 380, 267, 360);
  154. ct.quadraticCurveTo(254, 330, 250, 380);
  155. ct.quadraticCurveTo(254, 420, 290, 369);
  156. ct.stroke();
  157.  
  158. }
  159.  
  160. </script>

因为不会   所以记录的东西特别多...

使用canvas 代码画小猪佩奇的更多相关文章

  1. 用CSS画小猪佩奇,你就是下一个社会人! js将“I am a coder”反转成 “coder a am I”,不许用split,join,subString,reverse;求解方法三

    用CSS画小猪佩奇,你就是下一个社会人!   欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 作者:江志耿 | 腾讯TEG网络工程师 我是佩奇,哼,这是我的弟弟乔治,呱呱,这是我的妈妈,嚯 ...

  2. *【Python】【demo实验31】【练习实例】【使用turtle画小猪佩奇】

    如下图小猪佩奇: 要求使用turtle画小猪佩奇: 源码: # encoding=utf-8 # -*- coding: UTF-8 -*- # 使用turtle画小猪佩奇 from turtle i ...

  3. 用CSS画小猪佩奇,你就是下一个社会人!

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 作者:江志耿 | 腾讯TEG网络工程师 我是佩奇,哼,这是我的弟弟乔治,呱呱,这是我的妈妈,嚯,这是我的爸爸,嚯~ 背景 小猪佩奇已经火了好 ...

  4. python 画小猪佩奇

    转自:python画个小猪佩奇 # -*- coding: utf-8 -*- """ Created on Mon May 20 11:36:03 2019 @auth ...

  5. 用python画小猪佩奇(非原创)

    略作改动: # coding:utf-8 import turtle as t t.screensize(400, 300, "blue") t.pensize(4) # 设置画笔 ...

  6. python 用turtle 画小猪佩奇

    from turtle import * def nose(x,y):#鼻子 penup()#提起笔 goto(x,y)#定位 pendown()#落笔,开始画 setheading(-30)#将乌龟 ...

  7. 利用python画小猪佩奇

    import turtle as t t.pensize(4) t.hideturtle() t.colormode(255) t.color((255,155,192),"pink&quo ...

  8. 如何优雅的使用C语言绘制一只小猪佩奇

    今天我们来用C语言画一只小猪佩奇---社会.社会....在画小猪佩奇之前,我们先使用带符号的距离长 (signed distance field,SDF) 来画一个圆形. 使用这个方法表示形状,但是这 ...

  9. turtle 20秒画完小猪佩奇“社会人”

    转载:https://blog.csdn.net/csdnsevenn/article/details/80650456 图片源自网络 作者 丁彦军 如需转载,请联系原作者授权. 今年社交平台上最火的 ...

随机推荐

  1. 关于比较js中两个对象相等 ==

    “如果两个操作数都是对象,则比较他们是不是同一个对象(引用的对象在内存中的地址一样),如果两个操作数都指向同一个对象,则相等操作符返回true,否则,返回false”. 我做了一个例子 functio ...

  2. CSV文件规范及其Java解析方式

    Comma-separated values(CSV)文件规范见WIKIPEDIA:https://en.wikipedia.org/wiki/Comma-separated_values#RFC_4 ...

  3. MapReduce程序的开发过程

    1. 在linux(虚拟机环境)下安装hadoop2.8.3 1.1 安装JDK环境 1.2 安装hadoop 1.3 进行配置:core-site.xml,hdfs-site.xml设置 1.4 初 ...

  4. OpenGL学习(3)——Shader(补)

    完成章节后练习. 练习 1. Adjust the vertex shader so that the triangle is upside down. #version 330 core layou ...

  5. java 分布式实践

    java 分布式实践 spring boot cloud实践 开源的全链路跟踪很多,比如 Spring Cloud Sleuth + Zipkin,国内有美团的 CAT 等等. 其目的就是当一个请求经 ...

  6. Centos 配置jdk环境变量

    1.安装方法 windows 下载,复制到 linux,解压,配置环境变量 linux 使用 wget 下载,解压,配置环境变量 linux 使用 yum 直接安装,环境变量自动配置好 2.查看是否已 ...

  7. IDEA Java 源发行版 8 需要目标发行版 1.8

     [问题记录] maven新建的一个项目,需要到一些java8的一些特性,但是在编译的时候就报错了,提示这样的错误. 我是在用二进制字面量出现的这个问题,二进制自变量是Java7的特性, 你可以这样写 ...

  8. 将mysql中一行中的几个字段 转换成一列并从其他数据库中查对应的邮件信息

    --将项目中的总监,经理,等的邮箱合并为一行 SELECT GROUP_CONCAT(t.USER_EMAIL SEPARATOR ' ') mail_address FROM portal.t_ac ...

  9. Java:集合类的数据结构

    本文源自参考<Think in Java>,多篇博文以及阅读源码的总结 前言 Java的集合其实就是各种基本的数据结构(栈,队列,hash表等),基于业务需求进而演变出的Java特有的数据 ...

  10. 文件锁-fcntl flock lockf

    这三个函数的作用都是给文件加锁,那它们有什么区别呢? 首先flock和fcntl是系统调用,而lockf是库函数.lockf实际上是fcntl的封装,所以lockf和fcntl的底层实现是一样的,对文 ...