/**
* 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. linux在文件中包含某个关键词的指定行插入内容

    1. 在包含某个关键字的行上面插入一行文字 sed -i '/wangzai/i\doubi' 1.txt 把内容doubi插入到包含wangzai关键字的上一行 2. 在包含某个关键字的行下面插入一 ...

  2. CSS Pseudo-classes(伪类)

    CSS Pseudo-classes(伪类) CSS伪类是用来添加一些选择器的特殊效果. 一.语法 伪类的语法: selector:pseudo-class {property:value;} CSS ...

  3. 如何用纯 CSS 创作一只徘徊的果冻怪兽

    效果预览 在线演示 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/VdOKQG 可交互视频 ...

  4. Linux Shell脚本编程--字符串截取

    Linux 的字符串截取很有用.有八种方法. 假设有变量 var=http://www.aaa.com/123.htm. 1. # 号截取,删除左边字符,保留右边字符. echo ${var#*//} ...

  5. 20145331 《Java程序设计》第10周学习总结

    20145331 <Java程序设计>第10周学习总结 教材学习内容总结 网络编程 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据发送到指定的位置 ...

  6. vim 中查询和转换编码

    vim中查询修改文件编码格式 set fileencoding 查看现在文本的编码 :set fenc=编码 转换当前文本的编码为指定的编码 :set enc=编码 以指定的编码显示文本,但不保存到文 ...

  7. maven中pom.xml解释

    知识点:解释maven中,各个标签的含义 转载:http://blog.sina.com.cn/s/blog_534f69a001010lpv.html (1)Introduce maven项目的核心 ...

  8. 【目标检测】R-CNN系列与SPP-Net总结

    目录 1. 前言 2. R-CNN 2.0 论文链接 2.1 概述 2.2 pre-training 2.3 不同阶段正负样本的IOU阈值 2.4 关于fine-tuning 2.5 对文章的一些思考 ...

  9. java的时间获取

    System类代表系统,系统级的很多属性和控制方法都放置在该类的内部.该类位于java.lang包. currentTimeMillis方法 public static long currentTim ...

  10. SQL Server----解决SQL Server 配置管理器不见了

    错误重现: 之前安装好的SQL Server 2012打开都没有问题,好多天没有打开了,今天打开我的SQL Server 2012 连接时出现错误: 在与SQL Server 建立连接时出现与网络相关 ...