canvas基础学习
/**
* 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基础学习的更多相关文章
- HTML5 <canvas> 基础学习
HTML5 <canvas> 元素用于图形的绘制,通过脚本 (通常是JavaScript)来完成. <canvas> 标签只是图形容器,您必须使用脚本来绘制图形 创建一个画布( ...
- canvas一周一练 -- canvas基础学习
从上个星期开始,耳朵就一直在生病,里面长了个疙瘩,肿的一碰就疼,不能吃饭不能嗨 (┳_┳)……在此提醒各位小伙伴,最近天气炎热,一定要注意防暑上火,病来如山倒呀~ 接下来我正在喝着5块一颗的药学习ca ...
- canvas基础学习(四)
今天逛天猫时,看见优衣库店铺首页有个这个飘雪效果,顿时觉得好酷炫,立马从里面copy代码进行学习. 之前我也做过一些canvas特效,往往在canvas全屏时,canvas下层的div就无法进行dom ...
- canvas基础学习(二)
一.图像绘制 canvas绘制图像的方法是ctx.drawImage();该方法有三种使用方式 1.ctx.drawImage(img,x,y); img是指图像对象,x和y分别是这个图像左上角在ca ...
- Canvas基础学习(一)——实现简单时钟显示
HTML5最受欢迎的功能就是<canvas>元素.这个元素负责在页面中设定一个区域,然后就可以通过JavaScript动态地在这个区域中绘制图形.关于<canvas>元素的一些 ...
- canvas基础学习笔记
canvas基本用法 1.什么是canvas(画布) <canvas> 是 HTML5 新增的元素,可用于通过使用JavaScript中的脚本来绘制图形,例如,它可以用于绘制图形,创建动 ...
- canvas基础学习(三)
一.图片加载控件 在canvas效果制作中常常要使用多张图片,为了提高用户体验,需要给用户提供一个图片加载中的过度页面效果.过度效果,我在项目中使用的是Sonic.js,它在git上的地址为https ...
- canvas基础学习(一)
一.概述 canvas它和其它的HTML5标签的使用基本一致,但是它相当于在浏览器中建立一个画布,可以再这个画布上画图.创建动画甚至是3D游戏.由于canvas要适配不同终端的分辨率,所以尽可能的在标 ...
- HTML5移动开发学习笔记之Canvas基础
1.第一个Canvas程序 看的是HTML5移动开发即学即用这本书,首先学习Canvas基础,废话不多说,直接看第一个例子. 效果图为: 代码如下: <!DOCTYPE html> < ...
随机推荐
- 你知道C语言为什么会有“_”(下划线)吗?
学过C语言的都知道,变量名只能由字母.数字.下划线组成,且只能以字母或者下划线开头. 学英语时我们都学过连字符(“-”),这个东东主要用来连接单词的.那么C语言为什么不直接 用连字符,而要改用下划线呢 ...
- linux 用到的命令
1. cd / 直接到服务器根目录 2. pwd 查看 当前所在目录 3. ll 查看当前文件下文件列表 4.ls 查看当前文件下文件,横向排列 5.ps -ef | gre ...
- [原创] css中的绝对定位和相对定位
我对博客的认识是:记录问题,解决问题,分享知识.如果有轮子,我不需要造轮子. 首先,定位无论是相对定位还是绝对定位,必须有一个参考项,而这个参考项,专业术语称之为 包含块,这里的包含块是指在定位时 ...
- 20145216史婧瑶《Java程序设计》第9周学习总结
20145216 <Java程序设计>第9周学习总结 教材学习内容总结 第十六章 整合数据库 16.1 JDBC入门 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找. ...
- Redis-与python交互
安装包 到中文官网查找客户端代码 联网安装 sudo pip install redis 使用源码安装 unzip redis-py-master.zip cd redis-py-master sud ...
- Tensorflow平台快速搭建:Windows 7+TensorFlow 0.12.0
Tensorflow平台快速搭建:Windows 7+TensorFlow 0.12.0 1.TensorFlow 0.12.0下载 2016年11月29日,距离TensorFlow 宣布开源刚刚过去 ...
- LeetCode——minimum-path-sum
Question Given a m x n grid filled with non-negative numbers, find a path from top left to bottom ri ...
- C#设计模式之控制反转即依赖注入-Spring.NET
主流的依赖注入方案:微软企业库中的Unity.Spring.NET.StructureMap.Ninject.Castle Windsor等等. 本章用简单的案例讲解 Spring.NET IOC-控 ...
- nodejs request-promise 请求返回中文乱码
nodejs request-promise 请求返回中文乱码 解决方法: 具体步骤如下: 1. 引用iconv-lite 进行转码. 2. 请求时要写参数:encoding:null 3. 对bod ...
- python2.7.10 VS2015编译方法
打开 Python-2.7.10\PCbuild目录 然后设置只编译python和pythoncore: 好了,编译试一试. 出现了好几个错误.由于 VS2015 取消了 timezone 的定义,改 ...