html5 之canvas

html5汹涌而来。拿来玩玩。今天学习canvas。
首先上个例子,自己写了一个实现圆角矩形方法。
  
function drawRoundRect(ctx,x,y,w,h){
var d1 = 1/40*w; //设置 d1 d2的默认长度 为贝塞尔曲线取中间控制点做准备
var d2 = 1/50*w ;
ctx.beginPath(); 
// 第一个节点
ctx.moveTo(x,y+d1+d2) ; //起始点
ctx.bezierCurveTo(x,y+d1,x+d1,y,x+d2+d1,y); //第一个圆角
ctx.lineTo(x+w-d1-d2,y); //连接线
ctx.bezierCurveTo(x+w-d1,y,x+w,y+d1,x+w,y+d1+d2); //第二个圆角
ctx.lineTo(x+w,y+h-d1-d2); //连接线
ctx.bezierCurveTo(x+w,y+h-d1,x+w-d1,y+h,x+w-d1-d2,y+h); //第三个圆角
ctx.lineTo(x+d1+d2,y+h); //连接线
ctx.bezierCurveTo(x+d1,y+h,x,y+h-d1,x,y+h-d1-d2); //第四个圆角
ctx.lineTo(x,y+d1+d2);//连接线
ctx.strokeStyle='#99ff00'; //设置画线颜色
ctx.stroke();//画线
}//画出圆角矩形 x y 为起始结点,w,h 为宽高 ctx 为画布环境


html5头部的声明如下:
 <!DOCTYPE html>

html5页面如下:
  <!DOCTYPE html>
<html class="no-js">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=gb2312" />
<title>html5 测试</title>
<script src="../js/modernizr-2.0.6.js"></script>
<style type="text/css">
.html-canvas{
width:300px;
height:400px;
}

</style>
</head>
<body>
<canvas id="draw-in-me" class="html-canvas">
<p>powered by html5</p>

</canvas>


<script src="../js/test1.js"></script>
</body>

</html>

使用了modernizer对浏览器是否支持相关功能进行检测。
getContext('2d'); //目前还只是支持获取2d画布环境
canvas 图形的话,只能画矩形,其余就只能画线。当然圆也可以。
   画线的工具函数:
         moveTo(x,y); //起始点设置
lineTo(x,y); //画直线
bezierCurveTo(x1,y1,x2,y2,x,y); //画两个控制点的贝塞尔曲线
    画线的步骤
beginPath();
closePath(), fill(),stroke() 等。
画圆
arc(x,y ,r,start,end,clockWise); //画圆或者环
x ,y 圆心
start end 弧度
r 半径
clockwise 顺时针 逆时针 true 为逆时针
画矩形
fillRect(x,y ,w,h); 画矩形
x,y 起始坐标,w ,h 宽高。等。
其他诸如:
ctx.strokeStyle fillStyle 设置画线 或填充的颜色。等修饰性的属性.

参考文档我引用的另一个文档。
     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值