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

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

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

下面贴图贴代码!!!

    <canvas id="myCanvas" width="400" height="500" style="border: 1px solid #808080;  margin-left:400px;" onmousemove="cnvs_getCoordinates(event);" onmouseout="cnvs_clearCoordinates();">看不见我!!!</canvas>

    <script>

        FunPig();
//小猪佩奇
function FunPig() { var ct = document.getElementById('myCanvas').getContext('2d'); ct.beginPath() //开始
ct.lineWidth = "3";
ct.strokeStyle = "pink";
//起点
ct.moveTo(75, 15); //控制范围 结束
//context.quadraticCurveTo(cpx, cpy, x, y);
ct.quadraticCurveTo(220, 26, 220, 160); //第一步 ct.moveTo(219, 141);
ct.quadraticCurveTo(240, 300, 70, 250); //第三步
// ct.stroke()
ct.moveTo(76, 253);
ct.quadraticCurveTo(16, 220, 74, 111); ct.moveTo(73, 112);
ct.quadraticCurveTo(60, 112, 31, 83);
ct.moveTo(31, 83);
ct.quadraticCurveTo(23, 26, 75, 15);
ct.moveTo(75, 15);
ct.quadraticCurveTo(108, 32, 99, 61);
ct.moveTo(99, 61);
ct.quadraticCurveTo(66, 101, 31, 81);
ct.stroke();
// 鼻子的两个孔
ct.beginPath();
ct.arc(48, 48, 6, 0 * Math.PI, 2.5 * Math.PI);
ct.stroke();
ct.beginPath();
ct.arc(77, 48, 6, 0 * Math.PI, 2.5 * Math.PI);
ct.stroke();
//耳朵 //左耳朵
ct.beginPath();
ct.moveTo(149, 31);
ct.quadraticCurveTo(155, 0, 189, 6);
ct.moveTo(189, 6);
ct.quadraticCurveTo(188, 30, 170, 44);
//右耳朵
ct.moveTo(188, 59);
ct.quadraticCurveTo(198, 24, 222, 32);
ct.moveTo(222, 32);
ct.quadraticCurveTo(255, 54, 199, 75);
ct.stroke(); //嘴巴
ct.beginPath();
ct.arc(93, 178, 30, 0 * Math.PI, 2.5 * Math.PI);
ct.stroke();
//眼睛
ct.beginPath();
ct.strokeStyle = " #BDBDBD"; ct.arc(141, 67, 14, 0 * Math.PI, 2.5 * Math.PI); ct.stroke();
ct.beginPath();
ct.strokeStyle = "#000000"; ct.arc(136, 64, 6, 0 * Math.PI, 2.5 * Math.PI);
ct.stroke(); ct.beginPath();
ct.strokeStyle = " #BDBDBD"; ct.arc(170, 88, 14, 0 * Math.PI, 2.5 * Math.PI);
ct.stroke();
ct.beginPath();
ct.strokeStyle = "#000000";
ct.fillStyle = "#FF0000";
ct.arc(165, 87, 6, 0 * Math.PI, 2.5 * Math.PI);
ct.stroke(); // 粉红嘴腮
ct.beginPath(); ct.strokeStyle = " #CD8C95";
ct.arc(178, 147, 20, 0 * Math.PI, 2.5 * Math.PI);
ct.stroke(); //身体
ct.beginPath();
ct.strokeStyle = "red";
ct.moveTo(195, 245);
ct.quadraticCurveTo(215, 215, 244, 410);
ct.moveTo(244, 410);
ct.quadraticCurveTo(244, 410, 38, 410);
ct.moveTo(38, 410);
ct.quadraticCurveTo(11, 410, 76, 251);
ct.stroke(); //两只手 ct.beginPath();
ct.strokeStyle = "pink";
ct.moveTo(58, 294);
ct.quadraticCurveTo(50, 288, 12, 238);
ct.moveTo(56, 300);
ct.quadraticCurveTo(56, 300, 16, 260);
ct.lineTo(3, 269);
ct.lineTo(11, 250);
ct.lineTo(3, 228);
ct.lineTo(15, 241);
ct.stroke();
//右手
ct.beginPath();
ct.moveTo(223, 292);
ct.quadraticCurveTo(266, 288, 287, 271);
ct.moveTo(287, 271);
ct.quadraticCurveTo(236, 233, 279, 245);
ct.moveTo(279, 245);
ct.quadraticCurveTo(255, 200, 295, 247);
ct.moveTo(295, 247);
ct.quadraticCurveTo(288, 200, 306, 226);
ct.moveTo(306, 226);
ct.quadraticCurveTo(311, 250, 308, 248);
ct.moveTo(308, 248);
ct.quadraticCurveTo(344, 200, 334, 245);
ct.moveTo(334, 245);
ct.quadraticCurveTo(311, 280, 300, 280);
ct.moveTo(300, 280);
ct.quadraticCurveTo(311, 280, 224, 303);
ct.stroke();
ct.beginPath();
ct.moveTo(94, 409);
ct.quadraticCurveTo(94, 409, 96, 451);
ct.moveTo(96, 451);
ct.quadraticCurveTo(53, 429, 56, 461);
ct.moveTo(56, 461);
ct.quadraticCurveTo(56, 461, 107, 464);
ct.lineTo(106, 409);
ct.moveTo(183, 411);
ct.lineTo(182, 447);
ct.quadraticCurveTo(124, 434, 136, 464);
ct.lineTo(196, 463);
ct.lineTo(195, 409);
ct.stroke();
ct.beginPath();
ct.lineWidth = "7";
ct.strokeStyle = "pink";
ct.lineCap = "round";
ct.moveTo(238,360);
ct.quadraticCurveTo(266, 380, 267, 360);
ct.quadraticCurveTo(254, 330, 250, 380);
ct.quadraticCurveTo(254, 420, 290, 369);
ct.stroke(); } </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. IDEA配置SpringBoot应用的profile启动参数

    参考博客:https://blog.csdn.net/li396864285/article/details/83576829 如图为, 配置多台eureka的启动参数, 分别为: --spring. ...

  2. 用Python给你的代码上个进度条吧 | 【代码也要面子的】

    微信公众号:AI算法与图像处理如果你觉得对你有帮助,欢迎关注.转发以及点赞哦-( ̄▽ ̄-)~ 前言 最近在跑一些代码的时候,很烦...因为有时候不知道这段程序什么时候能执行完,现在执行哪里了,如果报错 ...

  3. numpy中np.random.seed()的详细用法

    在进行机器学习和深度学习中,我们会经常用到np.random.seed(),利用随机数种子,使得每次生成的随机数相同. numpy.randn.randn(d0,d1,...,dn) randn函数根 ...

  4. java_guide_类加载器

    类加载器总结 JVM 中内置了三个重要的 ClassLoader,除了 BootstrapClassLoader 其他类加载器均由 Java 实现且全部继承自java.lang.ClassLoader ...

  5. spring中的BeanFactoryPostProcessor

    spring中的BeanFactoryPostProcessor和BeanPostProcessor有些像,BeanPostProcessor是在bean的初始化前后进行一些操作, BeanFacto ...

  6. lua介绍及环境搭建(一)

    一.介绍 1.简介 Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能. 其设计目的是为了嵌入应用程序中,从 ...

  7. zabbix监控mysql主从同步和延迟

    https://blog.csdn.net/natmazz/article/details/90581490 https://www.cnblogs.com/01-single/p/10602610. ...

  8. 【深入浅出-JVM】(9): 方法区

    概念 方法区是虚拟机规范定义的,是所有线程共享的内存区域,保存系统的类的信息.比如:类的字段.方法.常量池.构造函数的字节码内容.代码.JIT 代码 永久代.metaspace 是对方法区的实现. H ...

  9. 剑指offer24:二叉树中和为输入整数值的所有路径。(注意: 在返回值的list中,数组长度大的数组靠前)

    1 题目描述 输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径.路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径.(注意: 在返回值的list中,数组长 ...

  10. 为什么我们需要Pod?(容器设计模式sidecar)

    Pod,是 Kubernetes 项目中最小的 API 对象 容器的本质是进程,就是未来云计算系统中的进程:容器镜像就是这个系统里的".exe"安装包 Kubernetes 就是操 ...