使用canvas 代码画小猪佩奇
最近不是小猪佩奇很火嘛!!! 前几天 在知乎 看见了别人大佬用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 代码画小猪佩奇的更多相关文章
- 用CSS画小猪佩奇,你就是下一个社会人! js将“I am a coder”反转成 “coder a am I”,不许用split,join,subString,reverse;求解方法三
用CSS画小猪佩奇,你就是下一个社会人! 欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 作者:江志耿 | 腾讯TEG网络工程师 我是佩奇,哼,这是我的弟弟乔治,呱呱,这是我的妈妈,嚯 ...
- *【Python】【demo实验31】【练习实例】【使用turtle画小猪佩奇】
如下图小猪佩奇: 要求使用turtle画小猪佩奇: 源码: # encoding=utf-8 # -*- coding: UTF-8 -*- # 使用turtle画小猪佩奇 from turtle i ...
- 用CSS画小猪佩奇,你就是下一个社会人!
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 作者:江志耿 | 腾讯TEG网络工程师 我是佩奇,哼,这是我的弟弟乔治,呱呱,这是我的妈妈,嚯,这是我的爸爸,嚯~ 背景 小猪佩奇已经火了好 ...
- python 画小猪佩奇
转自:python画个小猪佩奇 # -*- coding: utf-8 -*- """ Created on Mon May 20 11:36:03 2019 @auth ...
- 用python画小猪佩奇(非原创)
略作改动: # coding:utf-8 import turtle as t t.screensize(400, 300, "blue") t.pensize(4) # 设置画笔 ...
- python 用turtle 画小猪佩奇
from turtle import * def nose(x,y):#鼻子 penup()#提起笔 goto(x,y)#定位 pendown()#落笔,开始画 setheading(-30)#将乌龟 ...
- 利用python画小猪佩奇
import turtle as t t.pensize(4) t.hideturtle() t.colormode(255) t.color((255,155,192),"pink&quo ...
- 如何优雅的使用C语言绘制一只小猪佩奇
今天我们来用C语言画一只小猪佩奇---社会.社会....在画小猪佩奇之前,我们先使用带符号的距离长 (signed distance field,SDF) 来画一个圆形. 使用这个方法表示形状,但是这 ...
- turtle 20秒画完小猪佩奇“社会人”
转载:https://blog.csdn.net/csdnsevenn/article/details/80650456 图片源自网络 作者 丁彦军 如需转载,请联系原作者授权. 今年社交平台上最火的 ...
随机推荐
- JKD1.8新特性
1.Optional类 Optional是jdk1.8引入的类型,Optional是一个容器对象,它包括了我们需要的对象,使用isPresent方法判断所包 含对象是否为空,isPresent方法返回 ...
- Web模糊测试:WFuzz的坑和快速入门
转载自 FreeBuf.COM 首先说下我对wfuzz这个工具的简单介绍和理解.工具主要是做web模糊测试,最开始做fuzz我是自己写个脚本配合一些常用工具来测,后来看见这款工具因为是比较简单吧,学习 ...
- hadoop java VM 参数设置 默认native栈大小设置
问题总结: 程序栈太小,64位机器的栈大小默认比32位的大,将程序从64放到32中执行则报错,需要修改初始堆栈大小 (.so库中提供两个函数接口,一个里面使用的是尺寸较大的图像,另一个处理的图像很小, ...
- golang的time包:时间字符串和时间戳的相互转换
本博客转自: https://blog.csdn.net/mirage003/article/details/86073046 package main import ( "log" ...
- 类型限定符volatile
目录 类型限定符volatile 强制内存读取 禁止编译优化 注意:volatile不能够保证线程同步 volatile bool flag; volatile int a; 添加volatile限定 ...
- 网络编程之异步IO
Linux的I/O模型有下面几种:1. 同步阻塞I/O: 用户进程进行I/O操作,一直阻塞到I/O操作完成为止.2. 同步非阻塞I/O: 用户程序可以通过设置文件描述符的属性O_NONBLOCK,I/ ...
- 使用JavaScript随机生成数字混合字母的验证码
<script> // 封装一个随机生成数字的函数 function random(a, b) { var n = Math.round(Math.random() * (a - b) ...
- MS SQL 2012表分区
最近开发一个手机用户统计平台,因为涉及到数据庞大,不得不以一周为单位对统计报表进行分区,所以记录一下,方便以后查看 第一步创建文件分组 对于文件分组共创建了14个,从 xy_group_2014102 ...
- DVWA漏洞演练平台 - 文件上传
DVWA(Damn Vulnerable Web Application)是一个用来进行安全脆弱性鉴定的PHP/MySQL Web应用,旨在为安全专业人员测试自己的专业技能和工具提供合法的环境,帮助w ...
- 解决python在cmd运行时导入包失败,出现错误信息 "ModuleNotFoundError: No module named ***"
1.下图为我的自动化测试工程结构图 我通过运行run.bat批处理文件,调用cmd控制台运行start_run.py来开始我的自动化测试,但是出现如下错误: 大家可能知道我们的工程在IDE(Pycha ...