1、HTML5元素用于图形的绘制,通过脚本(通常是javascript)来完成。

2、标签只是图形容器,必须使用脚本来绘制图形。

3、可以通过多种方法通过Canvas绘制路径、盒、圆、字符以及添加图像。

二、Canvas绘制图形

1、绘制矩形

2、绘制圆形

3、moveTo和lineTo

4、使用bezierCurveTo绘制贝塞尔曲线

5、绘制线性渐变

6、绘制径向渐变

7、绘制变形图形

8、绘制图形合成gloablCompositeOperation属性

使用不同的 globalCompositeOperation 值绘制矩形。橙色矩形是目标图像。粉色矩形是源图像。

定义和用法

globalCompositeOperation属性设置或返回如何将一个源(新的)图像绘制到目标(已有)的图像上。

源图像 = 您打算放置到画布上的绘图。

目标图像 = 您已经放置在画布上的绘图。

属性值:

属性

source-atop

在先绘制的图形顶部显示后绘制的图形。后绘制的图形位于先绘制的图形之外的部分是不可见的。

source-in

只绘制相交部分,由后绘制图形的填充覆盖,其余部分透明。

source-out

只绘制后绘制图形不相交的部分,由后绘制图形的填充覆盖,其余部分透明。

source-over

在先绘制的图形上显示后绘制的图形。相交部分由后绘制的图形填充(颜色,渐变,纹理)覆盖

destination-atop

在后绘制的图形顶部显示先绘制的图形。源图像之外的目标图像部分不会被显示。

destination-in

在后绘制的图形中显示先绘制的图形。只绘制相交部分,由先绘制图形的填充覆盖,其余部分透明

destination-out

只有后绘制的图形外的目标图像部分会被显示,源图像是透明的。

destination-over

相交部分由先绘制图形的填充(颜色,渐变,纹理)覆盖.

lighter

相交部分由根据先后图形填充来增加亮度。

copy

显示后绘制的图形。只绘制后绘制图形。

xor

相交部分透明

以上效果图的代码如下:

$(function(){

var options = new Array(

"source-atop",

"source-in",

"source-out",

"source-over",

"destination-atop",

"destination-in",

"destination-out",

"destination-over",

"lighter",

"copy",

"xor"

);

var str="";

for(var i=0;i

str = "

"+options[i]+"

";

$("body").append(str);

var cas = document.getElementById('canvas'+i);

var ctx = cas.getContext('2d');

ctx.fillStyle = "orange";

ctx.fillRect(10,10,50,50);

ctx.globalCompositeOperation = options[i];

ctx.beginPath();

ctx.fillStyle = "pink";

ctx.arc(50,50,30,0,2*Math.PI);

ctx.fill();

}

})

图形合成

9、给图形绘制阴影

代码如下:

canvas基础api

canvas{

border:1px solid #ccc;

margin:50px;

}

$(function(){

//获取标签

var cas = document.getElementById('canvas');

//获取绘制环境

var ctx = cas.getContext('2d');

ctx.fillStyle ="#eef";

ctx.fillRect(0,0,300,300);

ctx.shadowOffsetX = 10;

ctx.shadowOffsetY = 10;

ctx.shadowColor = "rgba(100,100,100,0.5)";

ctx.shadowBlur = 7;

for(var j=0;j<3;j++){

ctx.translate(80,80);

create5star(ctx);

ctx.fill();

}

function create5star(ctx){

var dx =0;

var dy=0;

var s=50;

ctx.beginPath();

ctx.fillStyle ='rgba(255,0,0,0.5)';

var x =Math.sin(0);

var y =Math.cos(0);

var dig = Math.PI/5*4;

for(var i=0;i<5;i++){

x=Math.sin(i*dig);

y=Math.cos(i*dig);

ctx.lineTo(dx+x*s,dy+y*s)

}

ctx.closePath();

ctx.fill();

}

})

您的浏览器不支持canvas

五角星阴影

10、canvas使用图像

语法:ctx.drawImage(imgobj,left,top,width,height)

canvas基础api

canvas{

border:1px solid #ccc;

}

$(function(){

//获取标签

var cas = document.getElementById('canvas');

//获取绘制环境

var ctx = cas.getContext('2d');

//导入图片

var img = new Image();

img.src="../images/002.png";

//图片加载完之后,再开始绘制图片

img.onload = function(){

//绘制图片ctx.drawImage(imgobj,left,top,width,height)

ctx.drawImage(img,100,50,300,200)

}

})

您的浏览器不支持canvas

用html画一个企鹅图案的代码,HTML5 Canvas来绘制图形相关推荐

  1. 用html画一个企鹅图案的代码,6张思维导图,帮你搞定html、css(css画QQ企鹅)

    想要思维导图原图的小伙伴  ,请关注公众账号"码农范er",输入关键字,"HTML思维导图",获取文件链接. 先给大家看一张喜欢的图片,缓解下心情,最近敲敲代码 ...

  2. HTML1个像素宽的代码,HTML5 Canvas中绘制一个像素宽的细线实现代码详情

    正统的HTML5 Canvas中如下代码ctx.lineWidth = 1; ctx.beginPath(); ctx.moveTo(10, 100); ctx.lineTo(300,100); ct ...

  3. html5画椭圆的完整代码,HTML5 Canvas中绘制椭圆的4种方法

    概述 HTML5中的Canvas并没有直接提供绘制椭圆的方法,下面是对几种绘制方法的总结.各种方法各有优缺,视情况选用.各方法的参数相同: 1.context为Canvas的2D绘图环境对象, 2.x ...

  4. 在html画一个自动缩放圆环,使用html5 canvas绘制圆环动效

    最近笔者有个需求,需求内容为:一组文字显示在圆环的周围,用户可添加文字,文字围绕着圆环,每个词对应圆环周围的的蓝色小圆点,当用户鼠标放在圆环上方小蓝点时时,实现放射出三角形,再显示出文字,先看看动图效 ...

  5. html如何绘制棒棒糖,css画一个棒棒糖的实例代码

    背景:每天进步一点点,多积累一点点.就会越来越棒 代码: 棒棒糖 用css画一个棒棒糖 要求: 1:棒棒糖中间文字为水平居中 2:不得少于三层颜色 .round{ width: 100px; heig ...

  6. html制作图片动画效果代码,HTML5 Canvas:制作动画特效

    编辑推荐: 本文来自于jquery之家 ,html5制作canvas动画的基本步骤,控制canvas动画和实例代码. 要在 HTML5 canvas 中绘制图像动画效果,你需要绘制出每一帧的图像,然后 ...

  7. python 用turtle模块画一个中国结!附代码、注释

    turtle模块是基于tkinter的模块,实现(主要画图)许多功能,这里,我们就用turtle画一个中国结吧! 介绍: 使用:turtle(画):math.sqrt(辅助) 一.导入 import ...

  8. 运用html画一个三角形,利用css或html5画出一个三角形的方法

    利用css或html5画出一个三角形的方法 发布时间:2020-09-14 14:49:22 来源:亿速云 阅读:83 作者:小新 这篇文章主要介绍利用css或html5画出一个三角形的方法,文中介绍 ...

  9. html 画圆点代码,HTML5 Canvas绘制圆点虚线实例

    HTML5 Canvas 提供了很多图形绘制的函数,但是很可惜,Canvas API只提供了画实线的函数(lineTo),却并未提供画虚线的方法.这样的设计有时会带来很大的不便,<JavaScr ...

最新文章

  1. Xshell关闭导致jar服务终止,使Jar在CentOS后台运行
  2. python去哪里学-杭州python编程入门去哪学?
  3. python continue语句的用法(跳过本次循环,不是跳出整个循环,break才是跳出整个循环)
  4. iptables限制最大连接数_性能调优,让你的服务器更强大!增加TCP连接最大限制...
  5. 协方差矩阵, 相关系数矩阵
  6. 互联网+2.0:技术有多强 梦想才有多近
  7. JAVA爬虫实践(实践二:博客园)
  8. java导出word文档_PHPWord导出word文档
  9. service: no such service mysqld 与 MySQL 的开启、关闭和重启
  10. [译] 实例解析 ES6 Proxy 使用场景
  11. IAR的基本使用教程
  12. Symbian智能手机特殊号码搜集(转)
  13. OSChina 周日乱弹 ——欣欣像蓉!还我程序员公道!
  14. 新MacBookAir (M1 2020)修改开机启登录密码
  15. 在mtk6223的软t卡上实现对sdhc卡的读写
  16. 【春节档排片地域可视化分析】
  17. c语言.jpg图片转成数组_怎么把Word转成PDF?一个PDF转换软件就能搞定!
  18. [HTML5-SVG]SVG是什么?SVG有什么用途?
  19. 机器学习中的数学——拟牛顿法(Quasi-Newton Methods)
  20. 使用Python进行同期群分析(Cohort Analysis)

热门文章

  1. 【轻博客观察之二】十问Tumblr
  2. 财报惊喜不断,京东彻底走出阴霾?
  3. 三角形外心坐标的计算公式
  4. JVM学习教程,带你轻松掌握Java虚拟机,吊打面试官
  5. 成年人改名字要哪些步骤和手续?
  6. 消失的梯度问题(vanishing gradient problem)
  7. 2020中职技能高考计算机,我市62名中职学生获得2020年技能高考操作考试满分
  8. 半糖主义的伤感空间日志推荐:心碎后,我们落泪
  9. 如何成为一个出色的演讲家_成为技术演讲者
  10. JAVA Web day01--- Android小白的第一天学习笔记