/**
* Created by ty on 2016/7/11.
* canvas 基础
*/
window.onload = function() {
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d"); //画线条
ctx.moveTo(50, 50);
ctx.lineTo(200, 200);
ctx.lineTo(50, 200);
ctx.lineTo(50, 50); ctx.fillStyle = "rgba(121, 13, 134, .6)";
ctx.fill();
//给该多边形描边
ctx.lineWidth = 6;
ctx.strokeStyle = "blue";
ctx.stroke(); //再画一条线,当有多个图形时候,应该每次前后都用beginPath()和closePath()
ctx.beginPath();
ctx.moveTo(150, 50);
ctx.lineTo(150, 100); ctx.lineWidth = 10;
ctx.strokeStyle = "green";
ctx.stroke(); //画圆形-顺时针版
ctx.beginPath();
ctx.arc(300, 100, 60, 0, 1.5*Math.PI);
ctx.strokeStyle = "rgb(24,100,150)";
ctx.lineWidth = 3;
ctx.closePath();
ctx.stroke(); //画圆形-逆时针版
ctx.beginPath();
ctx.arc(430, 100, 60, 0, 0.5*Math.PI, true);
// ctx.strokeStyle = "rgb(24,100,150)";
// ctx.lineWidth = 3;
ctx.stroke();
ctx.closePath(); /**
* 渐变: 线性渐变
* 在新画布中做渐变
*/
var canvas2 = document.getElementById("canvas2");
var ctx2 = canvas2.getContext("2d"); var linearGradient = ctx2.createLinearGradient(0, 0, ctx2.canvas.width, ctx2.canvas.height);
linearGradient.addColorStop(0,"#000");
linearGradient.addColorStop(1, "#035");
ctx2.fillStyle = linearGradient;
ctx2.fillRect(0, 0, ctx2.canvas.width, ctx2.canvas.height); /**
* 渐变:径向渐变
* 在新画布中做渐变
*/
var canvas3 = document.getElementById("canvas3");
var ctx3 = canvas3.getContext("2d"); var radialGradient = ctx3.createRadialGradient(0, 0, 100, 800, 800, 20);
radialGradient.addColorStop(0,"red");
radialGradient.addColorStop(0.5,"green");
radialGradient.addColorStop(1, "#035");
ctx3.fillStyle = radialGradient;
ctx3.fillRect(0, 0, ctx3.canvas.width, ctx3.canvas.height); /**
* 使用pattern创建图片
* createPattern(ele, repeat-style)
*/
var canvas4 = document.getElementById("canvas4");
var ctx4 = canvas4.getContext("2d");
var imgEle = new Image(); imgEle.src = "../image/search.png";
imgEle.onload = function() {
var imgPattern = ctx4.createPattern(imgEle, "repeat");
ctx4.fillStyle = imgPattern;
ctx4.rotate(10 * Math.PI / 180);
ctx4.fillRect(0, 0, ctx4.canvas.width, ctx4.canvas.height);
}; /**
* arcTo
*/
var canvas5 = document.getElementById("canvas5");
var ctx5 = canvas5.getContext("2d"); ctx5.beginPath();
ctx5.moveTo(50, 50);
ctx5.lineTo(150, 50);
ctx5.lineTo(150, 150); ctx5.strokeStyle = "green";
ctx5.stroke(); ctx5.beginPath();
ctx5.moveTo(50, 50);
ctx5.arcTo(150, 50, 150, 150, 70); ctx5.strokeStyle = "purple";
ctx5.stroke(); /**
* fillText 文字 写字
*/
//ctx.beginPath();
var canvas6 = document.getElementById("canvas6");
var ctx6 = canvas6.getContext("2d");
ctx6.font = "3rem normal Microsoft YaHei,weiruanyahei";
ctx6.fillText("88",100, 300); ctx6.font = "3rem bold Microsoft YaHei,weiruanyahei";
ctx6.textAlign = "left";
ctx6.fillText("left",100, 380);//无bold效果,可见顺序不能变 ctx6.font = "bold 3rem Microsoft YaHei,weiruanyahei";
ctx6.textAlign = "right";
ctx6.fillText("right",100, 440);//有bold效果,可见顺序不能变 ctx6.font = "bolder 4rem Microsoft YaHei,weiruanyahei";
ctx6.textAlign = "center";
ctx6.fillText("center",100, 500); //画个辅助线,看看文字对齐到底在哪儿
ctx6.beginPath();
ctx6.moveTo(400, 0);
ctx6.lineTo(100, 600);
ctx6.lineWidth=2;
ctx6.strokeStyle = "red";
ctx6.stroke();
ctx6.closePath(); //ctx.closePath();
};

canvas基础学习的更多相关文章

  1. HTML5 <canvas> 基础学习

    HTML5 <canvas> 元素用于图形的绘制,通过脚本 (通常是JavaScript)来完成. <canvas> 标签只是图形容器,您必须使用脚本来绘制图形 创建一个画布( ...

  2. canvas一周一练 -- canvas基础学习

    从上个星期开始,耳朵就一直在生病,里面长了个疙瘩,肿的一碰就疼,不能吃饭不能嗨 (┳_┳)……在此提醒各位小伙伴,最近天气炎热,一定要注意防暑上火,病来如山倒呀~ 接下来我正在喝着5块一颗的药学习ca ...

  3. canvas基础学习(四)

    今天逛天猫时,看见优衣库店铺首页有个这个飘雪效果,顿时觉得好酷炫,立马从里面copy代码进行学习. 之前我也做过一些canvas特效,往往在canvas全屏时,canvas下层的div就无法进行dom ...

  4. canvas基础学习(二)

    一.图像绘制 canvas绘制图像的方法是ctx.drawImage();该方法有三种使用方式 1.ctx.drawImage(img,x,y); img是指图像对象,x和y分别是这个图像左上角在ca ...

  5. Canvas基础学习(一)——实现简单时钟显示

    HTML5最受欢迎的功能就是<canvas>元素.这个元素负责在页面中设定一个区域,然后就可以通过JavaScript动态地在这个区域中绘制图形.关于<canvas>元素的一些 ...

  6. canvas基础学习笔记

    canvas基本用法 1.什么是canvas(画布)  <canvas> 是 HTML5 新增的元素,可用于通过使用JavaScript中的脚本来绘制图形,例如,它可以用于绘制图形,创建动 ...

  7. canvas基础学习(三)

    一.图片加载控件 在canvas效果制作中常常要使用多张图片,为了提高用户体验,需要给用户提供一个图片加载中的过度页面效果.过度效果,我在项目中使用的是Sonic.js,它在git上的地址为https ...

  8. canvas基础学习(一)

    一.概述 canvas它和其它的HTML5标签的使用基本一致,但是它相当于在浏览器中建立一个画布,可以再这个画布上画图.创建动画甚至是3D游戏.由于canvas要适配不同终端的分辨率,所以尽可能的在标 ...

  9. HTML5移动开发学习笔记之Canvas基础

    1.第一个Canvas程序 看的是HTML5移动开发即学即用这本书,首先学习Canvas基础,废话不多说,直接看第一个例子. 效果图为: 代码如下: <!DOCTYPE html> < ...

随机推荐

  1. MVP架构学习

    MVP架构学习 M:数据层(数据库,文件,网络等...) V:UI层(Activity,Fragment,View以及子类,Adapter以及子类) P:中介,关联UI层和数据层,因为V和M是相互看不 ...

  2. 微信小程序页面跳转后js定时器没有销毁的问题

    现在有一个小程序,对页面数据的实时性很强,本来想用socket,仔细研究了一下,万剑不离其中,它是websocket.服务端不会用,所以使用了传统的http请求方式.开发微信小程序必须要知道的事 1. ...

  3. MBR主引导记录

    LBA的寻址方式可以让我们支持2TB,这是因为分区相对起始扇区号(分区项08-11个字节)和分区最大扇区数(分区项12-15个字节)的位数都是32bit.也就是0xFFFFFFFF*512/1024/ ...

  4. 如何生成SSH key

    SSH key提供了一种与GitHub通信的方式,通过这种方式,能够在不输入密码的情况下,将GitHub作为自己的remote端服务器,进行版本控制 步骤 检查SSH keys是否存在 生成新的ssh ...

  5. 如何使一个openwrt下的软件开机自启动

    条件有三: 1.需要在软件包的Makefile中添加宏定义Package/$(package-name)/preinst和Package/$(package-name)/prerm define Pa ...

  6. 浅析ProcessBuilder

    概述 ProcessBuilder类是J2SE 1.5在java.lang中新添加的一个新类,此类用于创建操作系统进程,它提供一种启动和管理进程(也就是应用程序)的方法.在J2SE 1.5之前,都是由 ...

  7. Windows下才有blat进行命令行邮件发送

    1.先下载blat.exe文件,下载地址: https://sourceforge.net/projects/blat/files/ 2.解压后只需要blat.exe即可,进入此文件夹,运行如下脚本进 ...

  8. spring boot 集成kafka (多线程,消费者使用kafka的原生api实现,因为@KakfkaListener修改groupId无效)

    application-test.properties #kafka kafka.consumer.zookeeper.connect=*:2181 kafka.consumer.servers=*: ...

  9. MongoTemplate WriteResult acknowledged=false 的问题

    今天使用 MongoTemplate 的 update 操作时,发现 WriteResult 的 acknowledged 一直为 false ,个人首先想到可能时java驱动版本不对,在更换好对应版 ...

  10. 爬虫之Handler处理器 和 自定义Opener

    Handler处理器 和 自定义Opener opener是 urllib2.OpenerDirector 的实例,我们之前一直都在使用的urlopen,它是一个特殊的opener(也就是模块帮我们构 ...