百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

用canvas画简单的“我的世界”人物头像

bigegpt 2025-01-16 18:04 14 浏览

前言:花了4天半终于看完了《Head First HTML5》,这本书的学习给我最大的感受就是,自己知识的浅薄,还有非常多非常棒的技术在等着我呢。[熊本表情]扶朕起来,朕还能学!

H5新增标签里面最喜欢的就是<canvas>,所以这次就用它写了个小demo,算是表达一下,对于它的爱意吧。

正文:

废话不多说,上代码~

html部分

<canvas id="myCanvas" width="800" height="800">想看图?快去升级你的浏览器吧~</canvas>

html部分只有这简单的一句,<canvas>内部包含的文本在浏览器不支持时输出,这真的是非常方便的用法呢(此处省略<html><body>等必备标签)

js部分

window.onload = function{
        //获取canvas的引用
        var myCanvas = document.getElementById("myCanvas");
        //获取context的引用
        var context = myCanvas.getContext("2d");
        //脸部
        drawRect(context,15,0,90,130,"#ff813e");
        //头发
        context.fillRect(10,0,100,40);
        //左边鬓角
        context.fillRect(10,40,20,20);
        //右边鬓角
        context.fillRect(90,40,20,20);
        //左边眼睛
        //左边眼睛眼眶
        drawRect(context,25,70,25,15,"#fff");
        //左边眼睛眼球
        drawRect(context,38,70,12,15,"#3d46ce");
        //右边眼睛
        //右边眼眶
        drawRect(context,70,70,25,15,"#fff");
        //右边眼睛眼球
        drawRect(context,70,70,12,15,"#3d46ce");
        //鼻子
        drawRect(context,54,88,12,12,"#ba7b56");
        //嘴巴
        drawRect(context,38,106,42,20,"#450000");
        //舌头
        drawRect(context,50,116,20,10,"#f494b9");
 }; 

虽然看着有这么十几行代码,但是重复的部分很多,也就四个东西:

(1)document.getElementById(id值)

获取到我们的canvas,以便在以后的代码中运用它展现我们美丽的创作

(2)canvas.getContext("2d")

获取画布的上下文,返回一个对象,该对象中有非常多的方法可以为我们创作提供方便。(PS:虽然这里是2d,但并不代表就一定有3d,不过这也是件好事,说不定它会是由你实现的呢?)

(3)drawRect(context,x,y,rectWidth,rectHeight,color)

这是一个自定义函数,它将canvas.getContext("2d")返回的对象作为参数传入,以便我们在函数中调用该对象包含的各种方法。同时传入想要绘制的点的坐标,以及绘制的矩形的宽度和高度,还有就是,我们填充矩形所用的颜色。

(4)context.fillRect(x,y,rectWidth,rectHeight)

偶偶偶耶,终于出现了,我们调用了一个context引用对象的方法,它为我们在画布上绘制出一个黑色矩形。为啥是黑色?因为这是默认颜色啊,如果你想改变颜色,哼哼,那就接着看下面的部分。

接下来,我们就有请drawRect函数登场

function drawRect(context,x,y,rectWidth,rectHeight,color){
        //开始一个路径
        context.beginPath;
        //起始位置移动到x,y参数指定的点
        context.moveTo(x,y);    
        //向坐标为(x+rectWidth,y)的点画一条路径
        context.lineTo(x+rectWidth,y);
        //向坐标为(x+rectWidth,y+rectHeight)的点画一条路径
        context.lineTo(x+rectWidth,y+rectHeight);
        //向坐标为(x,y+rectHeight)的点画一条路径
        context.lineTo(x,y+rectHeight);
        //闭合路径
        context.closePath;
        //设置颜色
        context.fillStyle = color;
        //填充由我们所绘路径形成的矩形
        context.fill;
        //设置颜色
        context.fillStyle = "#000";
        //设置描绘线条的宽度
        context.lineWidth = 2;
        //描线
        context.stroke;
 }

在drawRect函数中,我们采用了一条边一条边的画矩形,当然你可以用其中用到的方法画出你喜欢的各种形状。其中要注意的是,我们画出的路径是不可见的,如果想看到路径,可以用stroke方法描出我们的路径,而此处我们画的路径是一个闭合的矩形,调用fill方法,则会用fillStyle指定的颜色填充该路径指定的内部区域。所以想要改变填充或者描线的颜色,就试试fillStyle属性吧~

至此,我们的demo已经完成啦~来看看效果吧~

啊哈哈哈哈啊哈哈哈哈,有没有爱上canvas呢?(canvas说:就算你不爱我,也有很多人爱得我死去活来的,不过,如果你要爱我的话,勉强也可以接受啦,╮(╯▽╰)╭)

后话:天气热了,大家注意防暑,大中午的就别出门了,哪凉快哪待着去吧——来自作死中午出门吃饭,结果中暑头痛要命的家伙的建议

相关推荐

10w qps缓存数据库——Redis(redis缓存调优)

一、Redis数据库介绍:Redis:非关系型缓存数据库nosql:非关系型数据库没有表,没有表与表之间的关系,更不存在外键存储数据的形式为key:values的形式c语言写的服务(监听端口),用来存...

Redis系列专题4--Redis配置参数详解

本文基于windowsX64,3.2.100版本讲解,不同版本默认配置参数不同在Redis中,Redis的根目录中有一个配置文件(redis.conf,windows下为redis.windows....

开源一夏 | 23 张图,4500 字从入门到精通解释 Redis

redis是目前出场率最高的NoSQL数据库,同时也是一个开源的数据结构存储系统,在缓存、数据库、消息处理等场景使用的非常多,本文瑞哥就带着大家用一篇文章入门这个强大的开源数据库——Redis。...

redis的简单与集群搭建(redis建立集群)

Redis是什么?是开源免费用c语言编写的单线程高性能的(key-value形式)内存数据库,基于内存运行并支持持久化的nosql数据库作用主要用来做缓存,单不仅仅是做缓存,比如:redis的计数器生...

推荐几个好用Redis图形化客户端工具

RedisPlushttps://gitee.com/MaxBill/RedisPlusRedisPlus是为Redis可视化管理开发的一款开源免费的桌面客户端软件,支持Windows、Linux...

关于Redis在windows上运行及fork函数问题

Redis在将数据库进行持久化操作时,需要fork一个进程,但是windows并不支持fork,导致在持久化操作期间,Redis必须阻塞所有的客户端直至持久化操作完成。微软的一些工程师花费时间在解决在...

你必须懂的Redis十大应用场景(redis常见应用场景)

Redis作为一款高性能的键值存储数据库,在互联网业务中有着广泛的应用。今天,我们就来详细盘点一下Redis的十大常用业务场景,并附上Golang的示例代码和简图,帮助大家更好地理解和应用Redis。...

极简Redis配置(redis的配置)

一、概述Redis的配置文件位于Redis安装目录下,文件名为redis.conf(Windows名为redis.windows.conf,linux下的是redis.conf)你可以通过C...

什么是redis,怎么启动及如何压测

从今天起咱们一起来学习一下关于“redis监控与调优”的内容。一、Redis介绍Redis是一种高级key-value数据库。它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。...

一款全新Redis UI可视化管理工具,支持WebUI和桌面——P3X Redis UI

介绍P3XRedisUI这是一个非常实用的RedisGUI,提供响应式WebUI访问或作为桌面应用程序使用,桌面端是跨平台的,而且完美支持中文界面。Githubhttps://github....

windows系统的服务器快速部署java项目环境地址

1、mysql:https://dev.mysql.com/downloads/mysql/(msi安装包)2、redis:https://github.com/tporadowski/redis/r...

window11 下 redis 下载与安装(windows安装redis客户端)

#热爱编程是一种怎样的体验#window11下redis下载与安装1)各个版本redis下载(windows)https://github.com/MicrosoftArchive/r...

一款轻量级的Redis客户端工具,贼好用!

使用命令行来操作Redis是一件非常麻烦的事情,我们一般会选用客户端工具来操作Redis。今天给大家分享一款好用的Redis客户端工具TinyRDM,它的界面清新又优雅,希望对大家有所帮助!简介Ti...

一个.NET开发且功能强大的Windows远程控制系统

我们致力于探索、分享和推荐最新的实用技术栈、开源项目、框架和实用工具。每天都有新鲜的开源资讯等待你的发现!项目介绍SiMayRemoteMonitorOS是一个基于Windows的远程控制系统,完...

Redis客户端工具详解(4款主流工具)

大家好,我是mikechen。Redis是大型架构的基石,也是大厂最爱考察内容,今天就给大家重点详解4款Redis工具@mikechen本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集...