绘制矩形的方法,strokeRect()、fillRect()及clearRect()。

方法 描述
strokeRect(double x,double y,double w,double h) 使用如下属性,为指定的矩形描边:
● strokeStyle
● lineWidth
● lineJoin
● miterLimit
如果宽度(w 参数)或高度(h 参数)有一个为0的话,那么该方法将会分别绘制一条竖线或横线。如果两者都为0,那不会绘制任何东西
fillRect(double x,double y,double w,double h) 使用fillStyle属性填充指定的矩形。如果宽度或高度是0的话,它不会进行任何绘制
clearRect(double x,double y,double w,double h) 将指定矩形与当前剪辑区域相交范围内的所有像素清除。

效果图如下,左侧为未填充的矩形,右侧为填充的矩形。

代码如下所示,

var canvas = document.getElementById("canvas"),
context = canvas.getContext("2d"); context.lineJoin = "round";//设置线交叉处为圆弧状
context.lineWidth = 50; // context.font = '24px Consolas';
context.fillText("点击画布任何地方将擦去图形 !",175,200); //颜色
context.strokeStyle = "goldenrod";
context.fillStyle = "rgba(0,0,255,0.5)"; //绘制
context.strokeRect(75,100,200,200);
context.fillRect(325,100,200,200); context.canvas.onmousedown = function(e){
context.clearRect(0,0,canvas.width,canvas.height);
};

JavaScript代码

绘制圆形的方法,arc(),beginPath(),closePath(),fill(),rect(),stroke()。

方 法 描 述
arc() 可以绘制圆弧
beginPath() 将当前路径之中所有子路径都清除掉,以此来重置当前路径。
closePath() 显式地封闭某段开放路径。该方法用于封闭圆弧路径以及由曲线或者线段所创建的开放路径
fill() 使用fillStyle对当前路径进行填充
rect(double x,double y,double width,double height) 在坐标(x,y)处建立一个宽度为width,高度为height的矩形子路径。该子路径一定是封闭的,而且总是按逆时针方向创建的
stroke() 使用strokeStyle来描绘当前路径的轮廓线

效果图如下,

代码如下所示,

var context = document.getElementById("canvas").getContext("2d");

//一个函数,由于绘制网格
function drawGrid(context,color,stepx,stepy){
context.strokeStyle = color;
context.lineWidth = 0.5; for(var i = stepx + 0.5; i < context.canvas.width;i += stepx){
context.beginPath();
context.moveTo(i,0);
context.lineTo(i,context.canvas.height);
context.stroke();
} for(var i = stepy + 0.5;i < context.canvas.height;i +=stepy){
context.beginPath();
context.moveTo(0,i);
context.lineTo(context.canvas.width,i);
context.stroke();
}
}
//绘制网格 作为底图
drawGrid(context,"lightgray",10,10);
//绘图属性
context.font = "48pt Helvetica";
context.strokeStyle = "blue";
context.fillStyle = "orange";
context.lineWidth = "2"; //文字
context.strokeText("Stroke",60,110);
context.fillText("Fill",400,110); context.strokeText("Stroke & Fill",650,110);
context.fillText("Stroke & Fill",650,110); //绘制矩形
context.lineWidth = "5";
context.beginPath();
context.rect(80,150,150,100);
context.stroke(); context.beginPath();
context.rect(400,150,150,100);
context.fill(); context.beginPath();
context.rect(750,150,150,100);
context.fill(); //绘制开口弧线 context.beginPath();
context.arc(150,370,60,0,Math.PI*3/2,false);//角度为270度
context.stroke(); context.beginPath();
context.arc(475,370,60,0,Math.PI*3/2,false);
context.fill(); context.beginPath();
context.arc(820,370,60,0,Math.PI*3/2,false);
context.stroke();
context.fill(); // 封闭的弧线 context.beginPath();
context.arc(150,550,60,0,Math.PI*3/2,false);
context.closePath();
context.stroke(); context.beginPath();
context.arc(475,550,60,0,Math.PI*3/2,false);
context.closePath();
context.fill(); context.beginPath();
context.arc(820,550,60,0,Math.PI*3/2,false);
context.closePath();
context.stroke();
context.fill();

JavaScript代码

canvas初探3:画方画圆的更多相关文章

  1. 操作系统实验 windows编程多线程 生产者消费者问题 画圆画方(内置bug版)

    实验3:随便写的 #include <windows.h> #include <string> #include <stdio.h> #pragma warning ...

  2. ABB工业机器人(条件执行数字信号判断,画方or画圆)

    一.前戏 条件:从安全点,到工具区域夹取工具(笔),到工作区域,判断数字信号 Di1 =1 ,Ture :画方,False:画圆,回到工具区域放下工具(笔),回到安全点 二. 准备工作 校准tcp工具 ...

  3. Canvas 如何画一个四分之一圆

    转: Canvas 如何画一个四分之一圆 HTML: Document JS: var c = document.getElementById('ctx') var ctx = c.getContex ...

  4. 【液晶模块系列基础视频】4.1.X-GUI图形界面库-画线画圆等函数简介

    [液晶模块系列基础视频]4.1.X-GUI图形界面库-画线画圆等函数简介 ============================== 技术论坛:http://www.eeschool.org 博客地 ...

  5. LCD编程_画点线圆

    上篇博客中进行了lcd的简单测试,这篇博客将进行更加复杂的测试——画点.画线.画圆.画线和画圆是在画点的基础上实现的,因此本篇博客重点实现画点操作. 先抛出这样的一个问题,已知: (x,y)的坐标: ...

  6. 利用LineRenderer画出一个圆,类似于lol中的攻击范围

    http://www.unity蛮牛.com/blog-5945-1409.html 本人大四狗,学unity半年有余,写此文章纯粹记录自己的心得. 废话不多说,进入主题.... 效果如图: 首先要理 ...

  7. 1.1.2-学习Opencv与MFC混合编程之---画图工具 画直线 画圆 画矩形

    源代码地址:http://download.csdn.net/detail/nuptboyzhb/3961685 画图工具 1.     画直线 Ø  增加‘直线’菜单项,建立类向导: Ø  对CXX ...

  8. Canvas的quadraticCurveTo 和 bezierCurveTo 画曲线 方法细说

    详细代码如下: <!doctype html> <html lang="en"> <head> <script src="htt ...

  9. CSS 画三角形、圆

    <div class="square"></div> <style> .square { height: 0px; width: 0px; bo ...

随机推荐

  1. Vs2012 创建项目失败 未找到与约束ContractName

    刚开始使用vs2012的时候,创建项目失败,后来找到原因 ,是KB2840642V2的原因,于是 卸载之.vs正常

  2. .net学习笔记----HttpRequest,WebRequest,HttpWebRequest区别

    WebRequest是一个虚类/基类,HttpWebRequest是WebRequest的具体实现 HttpRequest类的对象用于服务器端,获取客户端传来的请求的信息,包括HTTP报文传送过来的所 ...

  3. 关于python中的字符串编码理解

    python2.x 中中间编码为unicode,一个字符串需要decode为unicode,再encode为其它编码格式(gbk.utf8等) 以gbk转utf8为例: s = "我是字符串 ...

  4. 关闭电脑SSD的磁盘碎片整理

    小白往往会把机械硬盘时代的习惯带进固态硬盘时代,比如碎片整理.机械硬盘时代砖家最喜欢告诉小白:“系统慢了吧?赶紧碎片整理撒.”小白屁颠屁颠地整理去了.殊不知碎片整理对于SSD来说完全就是种折磨.这种“ ...

  5. F#之旅7 - 图片处理入门

    首先,隆重介绍今天的主角:ImageProcessor(http://imageprocessor.org/).虽然我并没有在实际工作中用到这个库,但是它干净利索的使用方式打动了我,很久以前就存了下来 ...

  6. linux线程

    线程:轻量级进程,在资源.数据方面不需要进行复制 不间断地跟踪指令执行的路径被称为执行路线 进程的结构:task_struck:地址空间 线程:轻量级的进程 在同一个进程中创建的线程,在共享进程的地址 ...

  7. Lattice Codes

    最近在做的一些关于lattice codes的工作,想记录下来. 首先,我认为lattice coding是一种联合编码调制技术,将消息序列映射到星座点.其中一个良好的性质是lattice point ...

  8. 疑难问题解决备忘录(1)——LAMP环境下WordPress无法发现themes目录下的主题问题解决

    程序猿的宿命就是无穷无尽地解题,虽然可以说是解题的机器,但也无法达到解题之神的境界,碰到自己解决不了的问题那是家常便饭,尤其当遍寻Google和StackOverflow花了九牛二虎之力才解决的问题, ...

  9. Java Servlet规范

    截自网址:http://blog.csdn.net/u010391029/article/details/46521051 JavaServlet Specification  Version 2.3 ...

  10. window下xampp配置多端口、多站点步骤

    好些日子没整理知识了,许多新东西不整理出来时间一长就淡忘了.看来以后得继续坚持整理. 配置XAMPP多端口.多站点如下步骤: 多端口: (一个域名下同时配置多个端口,从而达到访问不同程序) 效果例如: ...