shadowColor表示阴影颜色,shadowBlur表示模糊等级

绘制之前的准备工作:

1.在body中加入canvas标签,设置它的id、width、height,当然也可以动态设置它的宽高。

<canvas id="mycanvas" width="1200" height="500"></canvas>

2.获得canvas对象的上下文obj.getContext(par),par参数为“2d”,目前canvas只支持二维效果。

var ctx = document.getElementById("mycanvas").getContext("2d");

如此你便有了一张1200*500的“画布”和一支名为“ctx”的画笔,接下来我们从一些最简单的图形开始绘制。

示例代码如下:

复制代码

var ctx=document.getElementById("container").getContext("2d");

ctx.fillStyle="blue";

ctx.fillRect(10,10,200,100);

ctx.lineWidth=10;

ctx.strokeStyle="red";

ctx.strokeRect(300,10,200,100);

复制代码

其中fill表示填充,stroke表示仅绘制边框。

同理fillRect表示实心矩形,strokeRect表示矩形边框,他们都有四个参数:x,y,w,h 分别为横纵坐标、宽、高。

fillStyle表示填充样式,strokeStyle表示边框样式。

lineWidth表示线宽。

需要注意的是,设置样式等应写在绘制图形之前,否则样式会渲染不上。

在绘制多个图形时,应该在绘制一个图形之前开绘制路径,定制完成后关闭绘制路径并绘制定制好的图形。例如上例标准写法应为:

复制代码

var ctx=document.getElementById("container").getContext("2d");

ctx.beginPath();

ctx.fillStyle="blue";

ctx.fillRect(10,10,200,100);

ctx.closePath();

ctx.stroke();

ctx.beginPath();

ctx.lineWidth=10;

ctx.strokeStyle="red";

ctx.strokeRect(300,10,200,100);

ctx.closePath();

ctx.stroke();

复制代码

beginPath()开启绘制路径,closePath()闭合绘制路径,stroke()绘制定制图形。在之后的练习中一定要养成习惯,否则当绘制线条时就会发现由于未闭合绘制路径所出现的线条错连。

绘制线条:

示例代码如下:

复制代码

var ctx=document.getElementById("container").getContext("2d");

ctx.beginPath();

ctx.moveTo(400,100);

ctx.lineTo(300,200);

ctx.lineTo(350,200);

ctx.lineTo(250,300);

ctx.lineTo(400,300);

ctx.closePath();

ctx.stroke();

复制代码

其中,moveTo表示将画笔移动到某个坐标上,lineTo指以画笔落点开始画到哪个位置。本次我们想要画一个简单的树冠

可见,这里我们只画了一半。(400,100)位置为树顶,(400,300)位置为树底中部,线条自动闭合正是我们关闭绘制路径所产生的效果。

接下来我们把另一半画完,并给这棵树填充上绿色:

复制代码

var ctx=document.getElementById("container").getContext("2d");

ctx.beginPath();

ctx.fillStyle="green";

ctx.moveTo(400,100);

ctx.lineTo(300,200);

ctx.lineTo(350,200);

ctx.lineTo(250,300);

ctx.lineTo(400,300);

ctx.lineTo(550,300);

ctx.lineTo(450,200);

ctx.lineTo(500,200);

ctx.lineTo(400,100);

ctx.fill();

ctx.closePath();

ctx.stroke();

复制代码

注意写在最后的fill()为填充样式:

绘制圆形:

示例代码:

var ctx=document.getElementById("container").getContext("2d");

ctx.beginPath();

ctx.arc(200,200,100,0,360*Math.PI/180,true);

ctx.closePath();

ctx.stroke();

arc(x,y,r,starta,enda,anti);参数分别代表:圆心横、纵坐标,半径、起始角(需转换成弧度值)、终止角、绘制方向。

用canvas绘制圆,如果你是刚接触一定觉得很纠结,因为它的参数有很多都是相反的。这里为了大家不纠结,我多罗嗦几句。

起、止角的计算与我们数学上的角度计算不同,数学中的角度逆时针为正,而这里的起止角是以顺时针为正,也就是当你起角设为0度,止角设为120度。它是从右边水平位置向下旋转计算角度。

还有就是绘制方向上,true代表逆时针,false代表顺时针。晕了的同学看下面的例子:

ctx.arc(200,200,100,0,120*Math.PI/180,true);

设起角为0,止角120。按数学上的思想应该是一个小于半圆的上半边的弧,而结果:

这里true表示逆时针绘制,所以绘出了的图形大于半圆。若改为false:

此时顺时针绘制出的图形小于半圆,这里大家应该也可以理解arc的角度计算方向是与数学相反的。要想画一个位于上方的小半圆?止角设为-120度,绘制方向true即可。

这里罗嗦这么多就是希望刚接触的朋友们少走弯路,不像我们研究半天。

绘制阴影:

复制代码

var ctx=document.getElementById("container").getContext("2d");

ctx.beginPath();

ctx.fillStyle="gray";

ctx.shadowOffsetX=5;

ctx.shadowOffsetY=5;

ctx.shadowColor="gold";

ctx.shadowBlur=5;

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

ctx.closePath();

ctx.stroke();

复制代码

shadowOffsetX、shadowOffsetY表示阴影横、纵向偏移量,shadowColor表示阴影颜色,shadowBlur表示模糊等级。

由于在之前CSS3相关博文中已经讲了不少关于阴影的东西了,这里就一笔带过。依然需要注意的是,先设置样式,最后再绘制矩形,顺序反了效果会渲染不上。

绘制渐变:

线性渐变:

复制代码

ctx.beginPath();

var Color=ctx.createLinearGradient(500,500,500,0);

Color.addColorStop(0.3,"orange");

Color.addColorStop(0.5,"yellow");

Color.addColorStop(1,"gray");

ctx.fillStyle=Color;

ctx.fillRect(0,0,1200,500);

ctx.closePath();

ctx.stroke();

复制代码

写法为:将ctx.createLinearGradient()赋值给一颜色变量,颜色变量可以添加多个渐变颜色,addColorStop其共有两个参数,1.偏移量(0-1)2.颜色。最后将颜色变量赋给fillStyle。

createLinearGradient(2881064151)共有四个参数:1、2表示起始面,3、4表示终于面。

径向渐变:

复制代码

ctx.beginPath();

ctx.arc(500,300,100,0,360*Math.PI/180,true);

var Color=ctx.createRadialGradient(500,300,30,500,300,100);

Color.addColorStop(0,"red");

Color.addColorStop(0.5,"orange");

Color.addColorStop(1,"yellow");

ctx.fillStyle=Color;

ctx.fill();

ctx.closePath();

ctx.stroke();

复制代码

与线性渐变比较相似,不同的是其名为createRadialGradient()中有六个参数:1、2.渐变开始圆的圆心坐标,3.渐变开始圆的半径,4、5.渐变结束圆的圆心坐标,6.渐变结束圆的半径。

绘制文字:

复制代码

ctx.beginPath();

ctx.strokeStyle="gold";

ctx.fillStyle="bule";

ctx.font="50px 微软雅黑";

ctx.strokeText("hello world!",700,200);

ctx.font="30px 幼圆";

ctx.fillText("hello kitty?",700,300);

ctx.fill();

ctx.closePath();

ctx.stroke();

复制代码

fillText(text,x,y,[maxwidth])绘制字符串,text表示文字内容,x,y文字坐标位置。[maxwidth]可选,设置字符最大宽大防止溢出。font设置字体。

其它参数:

textAlign 设置文字水平对齐方式 value 为 start|end|left|right|center 默认值为start

textBaseline 设置文字垂直对齐方式 value 为 top|hanging|middle|alphabetic|ideographic|bootom 默认为alphabetic

大家有兴趣自己试试吧。

图片绘制:

呼.....写了半天终于写到正题了,相对于上面简单图形的绘制,图片绘制要用的更多一些,尤其是在游戏中。

这里介绍一种较简单的方法,首先在body中写上:

<div class="hide">

<img src="" id="myImg">

</div>

将你想要绘制的图片先加入body中,然后将父级div隐藏,一个隐藏的div中可以放入一个项目中所有需要绘制的图片甚至是音频文件,就好像一个别人看不见的素材库。

然后:

var ctx = document.getElementById("mycanvas").getContext("2d");

var img=document.getElementById("myImg");

ctx.beginPath();

ctx.drawImage(img,x,y);

ctx.closePath();

ctx.stroke();

得到你想要绘制的图片对象,通过drawImage来绘制。这里drawImage()可以有3个参数,5个参数,9个参数。

3个参数:1.需要绘制的图片对象 2,3.图片坐标;

5个参数:1.需要绘制的图片对象 2,3.图片坐标 4,5.图片宽高;

9个参数:1.需要绘制的图片对象 2,3.绘制图片的横纵向切割点 4.横向切割宽度 5.纵向切割高度 6,7.切割好的图片坐标 8,9.切割好的图片宽高。

主题: HTMLHTML5360CSS3CSS矩形变量微软

时间: 2024-08-15 07:39:04

shadowColor表示阴影颜色,shadowBlur表示模糊等级的相关文章

canvas -颜色,样式 相关

属性 (6个): fillStyle : color|gradient|pattern - 填充颜色 strokeStyle : color|gradient|pattern  - 边框颜色 shadowColor : color - 阴影颜色 shadowBlur  -  设置或者返回阴影的模糊级别 shadowOffsetX,shadowOffsetY 设置水平和垂直距离 方法(4个): createLinearGradient(x1,y1,x2,y2)  - 创建渐变 createPatt

HTML5简明教程-1.1.1.HTML5Canvas参考手册 之 阴影shadowColor、shadowBlur、shadowOffsetX、shadowOffsetY

原文链接:http://blog.csdn.net/tomorrow13210073213/article/details/42386597 转载请注明出处. HTML5的画布给我们提供了绘制元素阴影的功能,主要的属性包括如下几个:shadowColor.shadowBlur.shadowOffsetX.shadowOffsetY.其中shadowColor定义阴影颜色样式,shadowBlur定义阴影模糊系数,shadowOffsetX定义阴影X轴偏移量,shadowOffsetY定义阴影Y轴

TextView的一些高级应用(自定义字体、显示多种颜色、添加阴影)

1.    自定义字体 可以使用setTypeface(Typeface)方法来设置文本框内文本的字体,而android的Typeface又使用TTF字体文件来设置字体 所以,我们可以在程序中放入TTF字体文件,在程序中使用Typeface来设置字体:第一步,在assets目录下新建fonts目录,把TTF字体文件放到这里.第二步,程序中调用: TextViewtv = (TextView)findViewById(R.id.textView); AssetManagermgr=getAsset

canvas阴影

shadowOffsetx 阴影X轴的移动 shadowOffsety 阴影的y轴移动 shadowColor 阴影颜色 shadowBlur 模糊范围 <!DOCTYPE html><html> <head lang="en"> <meta charset="utf-8"> <title></title> <script> function draw(id){ var canvas

HTML5学习笔记-绘制变形图形之绘制带阴影图形

绘制带阴影效果的图形 在canvas上绘制带阴影效果的图形只需设置shadowOffsetX,shadowOffsetY,shadowBlur,shadowColor属性. shadowOffsetX,shadowOffsetY表示阴影的x,y偏移量单位像素:可以使用负值,正负偏移方向不同.shadowBlur设置阴影模糊程度,值越大,阴影越模糊,效果与Photoshop的高斯模糊滤镜相同:shadowColor设置阴影颜色. 1 <h3>绘制阴影效果</h3> 2 <can

New UI-带阴影的TextView

New UI-带阴影的TextView  --转载请注明出处:coder-pig,欢迎转载,请勿用于商业用途! 小猪Android开发交流群已建立,欢迎大家加入,无论是新手,菜鸟,大神都可以,小猪一个人的 力量毕竟是有限的,写出来的东西肯定会有很多纰漏不足,欢迎大家指出,集思广益,让小猪的博文 更加的详尽,帮到更多的人,O(∩_∩)O谢谢! 小猪Android开发交流群:小猪Android开发交流群群号:421858269 新Android UI实例大全目录:http://blog.csdn.n

Android打造万能自定义阴影控件

目录介绍 01.阴影效果有哪些实现方式 02.实现阴影效果Api 03.设置阴影需要注意哪些 04.常见Shape实现阴影效果 05.自定义阴影效果控件 06.如何使用该阴影控件 07.在recyclerView中使用注意点 01.阴影效果有哪些实现方式 阴影效果有哪些实现方式 第一种:使用CardView,但是不能设置阴影颜色 第二种:采用shape叠加,存在后期UI效果不便优化 第三种:UI切图 第四种:自定义View 否定上面前两种方案原因分析? 第一个方案的CardView渐变色和阴影效

HTML5新增核心工具——canvas

Canvas元素称得上是HTML5的核心所在,它是一个依靠JavaScript绘制华丽图像的元素. Canvas由一个可绘制地区HTML代码中的属性定义决定高度和宽度,JavaScript代码可以访问该地区,通过一套完整的绘图功能类似于其他通用二维的API,从而生成动态的图形. Canvas可以在浏览器中绘制出十分华丽的图形,比如: 当然这应该算比较高级的用法了,本菜也不会=.= Canvas一个很大的作用就是制作游戏,本文通过博主之前做的一个小游戏来从零介绍Canvas的用法,先展示下吧: O

HTML5 Canvas知识点学习笔记

canvas ① 主要作用:绘制矢量图 ② 矢量图图形(路径)-(ILL) 位图图像(像素点)- PS中图像都是位图 ③ Canvas 能够制作动画,但是不是为了制作动画而生的也能够制作游戏.主要为了绘图而生. ④ 能够设置宽高 推荐样式写在style:Canvas 相当于是一个绘制图形的容器,并没有绘制功能,需要借助JS(脚本)实现绘制功能. 思路: getContext( ) var context = cnvas.getContext('2d'); // 图像的绘制 // 开始