【HTML】Canvas(1)-绘制图形

html5 canvas实现的绘图工具自由绘制图形画板源码.zip 这是一款基于html5 canvas实现的绘图工具自由绘制图形画板源码,具备画板基本的线、矩形、铅笔、圆、五角星等绘图工具,及颜色与边框的填充,橡皮擦等功能。绘图完毕还具有保存图片的功能。是一款非常实用的经典html5画板工具源码。建议使用支持html5与css3效果较好的火狐或谷歌等浏览器预览本源码。 立即下载

  Canvas元素是HTML5的新元素之一,用于在网页上绘制图形,相当于在HTML中嵌入了一张画布,这样就可以直接在HTML上进行图形操作了,所以它具有极大的的应用价值。Canvas本身是没有绘图能力的,它需要借助javascript来实现绘图的功能。

  canvas目前只是一张二维画布,如果想要实现三维效果,需要借助第三方类库。

 

如何使用canvas来绘图:

只需要向HTML5里添加canvas元素即可,HTML代码:

<canvas id=”mycanvas” width=”200” height=”100”>你的浏览器不支持HTML5</canvas>

Javascript代码:
onload=function(){
draw()
};
function draw(){
	/*使用id来寻求canvas元素*/
	var canvas=document.getElementById(‘canvassample’);
	/*验证canvas元素是否存在,以及浏览器是否支持canvas元素*/
	if(!canvas||!canvas.getContext)return false;		/*创建context对象*/
	var ctx=canvas.getContext(‘2d’);
	/*画一个红色矩形*/
	ctx.fillStyle=’#FF0000’;
	ctx.fillRect(0,0,150,75);
}

  HTML代码中,canvas标签内部可以添加文字或HTML代码,如果浏览器不支持canvas标签,那么会自动跳过canvas标签而运行canvas内部的HTML代码或内容。

  Javascript代码中,首先要判断canvas这个元素是否讯在及用户所使用的浏览器是否支持此元素。如果无法使用canvas元素,那么接下来所做的事情都是毫无意义了。

使用getContext方法时,传递了一个“2d”参数,这就可以得到二维的context对象以实现二维图像的描画了。

以下为一些简单的栗子:

绘制一条直线:

var c=document.getElementById('mycanvas');		//获取HTML中的canvas标签
	var ctx=c.getContext('2d');		//返回一个用来绘制环境类型的环境,是一个CanvasRenderingContext2D对象,该对象实现了一个画布所使用的大多数方法
	ctx.lineWidth=10;	//设置线条宽度
	ctx.strokeStyle='red';		//设置画笔颜色
	ctx.beginPath();		//创建一个新的路径
	ctx.moveTo(10,10);		//将画笔光标位置移动到坐标(10,10)处
	ctx.lineTo(150,50);		//从当前坐标开始移动画笔到坐标(150,50)处,绘制一条直线
	ctx.stroke();		//开始绘制定义好的路径


三种不同风格的带线帽的直线:

var c=document.getElementById('mycanvas');
	var ctx=c.getContext('2d');
	ctx.lineWidth=10;
	ctx.strokeStyle='red';

	ctx.lineCap='butt';
	ctx.beginPath();
	ctx.moveTo(10,10);
	ctx.lineTo(150,10);
	ctx.stroke();

	ctx.lineCap='round';
	ctx.beginPath();
	ctx.moveTo(10,40);
	ctx.lineTo(150,40);
	ctx.stroke();

	ctx.lineCap='square';
	ctx.beginPath();
	ctx.moveTo(10,70);
	ctx.lineTo(150,70);
	ctx.stroke();

画空心矩形:

var c=document.getElementById('mycanvas');
	var ctx=c.getContext('2d');
	ctx.lineWidth=5;
	ctx.strokeStyle='red';
	ctx.beginPath();
	ctx.strokeRect(10,10,70,40);	//起点坐标x,坐标y,矩形长,矩形宽

画实心矩形:


方法一:

var c=document.getElementById('mycanvas');
	var ctx=c.getContext('2d');
	ctx.fillStyle='red';
	ctx.beginPath();
	ctx.fillRect(10,10,70,40);

方法二:

var c=document.getElementById('mycanvas');
	var ctx=c.getContext('2d');
	ctx.fillStyle='red';
	ctx.beginPath();
	ctx.rect(10,10,70,40);
	ctx.fill();

画空心圆:

var c=document.getElementById('mycanvas');
	var ctx=c.getContext('2d');
	ctx.lineWidth=10;
	ctx.strokeStyle='red';
	ctx.beginPath();
	ctx.arc(100,100,70,0,130*Math.PI/180,true);		//圆弧中心的坐标x和坐标y、圆弧半径、起始角度、终止角度、是否逆时针
	ctx.stroke();

画实心圆:

var c=document.getElementById('mycanvas');
	var ctx=c.getContext('2d');
	ctx.lineWidth=10;
	ctx.fillStyle='red';
	ctx.beginPath();
	ctx.arc(100,100,70,0,130*Math.PI/180,true);
	ctx.fill();

画圆角矩形:

var c=document.getElementById('mycanvas');
	var ctx=c.getContext('2d');
	ctx.lineWidth=5;
	ctx.strokeStyle='red';
	ctx.beginPath();
	ctx.moveTo(40,20);
	ctx.lineTo(100,20);
	ctx.arcTo(120,20,120,40,20);
	ctx.lineTo(120,70);
	ctx.arcTo(120,90,100,90,20);
	ctx.lineTo(40,90);
	ctx.arcTo(20,90,20,70,20);
	ctx.lineTo(20,40);
	ctx.arcTo(20,20,40,20,20);
	ctx.stroke();

擦除canvas画板:

var c=document.getElementById('mycanvas');
	var ctx=c.getContext('2d');
	ctx.fillStyle='red';
	ctx.beginPath();
	ctx.fillRect(10,10,200,100);
	ctx.clearRect(30,30,50,50);		//clearRect()函数可擦除一个矩形区域


Author:致知

Sign:路漫漫其修远兮,吾将上下而求索。


附:

【HTML】Canvas(2)-绘制文本

【HTML】Canvas(3)-绘制图片

【HTML】Canvas(4)-进阶

HTML5绘图 源代码 No matter what platform or tools you use, the HTML5 revolution will soon change the way you build web applications, if it hasn't already. This book gets you started with the Canvas element, perhaps HTML5's most exciting feature. Learn how to build interactive multimedia applications using this element to draw, render text, manipulate images, and create animation. Whether you currently use Flash, Silverlight, or just HTML and JavaScript, you'll quickly pick up the basics. 立即下载

相关推荐

html5在线可视化流程图简易绘图工具代码

html5在线可视化流程图简易绘图工具代码

Vue 74 ,JavaScript 32 ,Canvas绘制图片和区域(前端使用Canvas绘制图片,并在图片上绘制区域)

⭐在前端开发中,有时我们需要在图片上进行一些交互式操作,比如绘制区域、标记等。这种场景下,我们可以使用HTML5的标签元素来实现。Canvas 是 HTML5 提供的一种图形绘制接口,可以通过 JavaScript 在网页上绘制图形、动画和其他视觉效果。这里分享记录,如何在图片上绘制区域。

AI Agent 全栈架构师(AI + GIS + Backend)& 数字芯片系统架构师(FPGA),NorthCity Smile的博客(NcSmile,博主域名:https://ncmile.blog.youkuaiyun.com) 8880

5个html5画图程序源代码

5个html5画图程序 源代码

HTML每日学习代码:绘制图形

第一个控制点 (cpX1,cpY1) 控制的是曲线离起点的偏离程度和方向,而第二个控制点 (cpX2,cpY2) 控制的是曲线离终点的偏离程度和方向。createLinearGradient(0, 0, 0, c.height) 创建的线性渐变对象会从画布的左上角 (0, 0) 开始,延伸到画布的左下角 (0, c.height)。在这个方法中,offset 参数表示渐变的位置,取值范围为 0 到 1,代表了当前位置相对于渐变起点和终点之间的距离比例。r0 是起点圆的半径,r1 是终点圆的半径。

Zb_Xl的博客 3366

echarts如何实现3D饼图(环形图)?

自定义修改3D饼图的宽高和legend

i-cat的博客 1万+

HyperLPR3车牌识别-Android-SDK光速部署与使用

基于深度学习高性能中文车牌识别 High Performance Chinese License Plate Recognition Framework.快速部署AndroidSDK

tunm 6121

html画布绘制图形

使用canvas标签完成直角三角形、矩形及圆形的绘制.

墨城烟柳ベ旧人殇的博客 2125

Netty源码分析系列之writeAndFlush()下

write()只会将数据只是发送到了ChannelOutboundBuffer 缓冲区中,还没有被发送到操作系统的套接字中只有当调用了 flush()方法后,才会真正将数据发送到套接字中。那么 flush()方法的源码又是如何执行的呢?

天堂的博客 1573

用html+css制作一个简易的三角形^_^(还会把以往制作圆形的代码分享给大家)

万物皆有形状,在以往的文章中我在写的过程中制作了许多次的圆形,我就在想,用html是不是还可以制作许多的其他的图形形状?答案是可以的。我在学习过程中,学到了如何制作简易的三角形,今天给大家分享一下。(还有圆形) 第一步:建立相应的文件夹,并创建空白html5的模板。 第二步:开始制作三角形。 1、创建一个空白的区域(使其的高和宽都为0) html代码: <div id="delta"></div> css代码: #delta{ width:0; .

m0_69057208的博客 1665

SAP高级外币评估_FINS_FXV_S4 2022 OP

摘要:S/4HANA 2022 On-Premise中的高级外币评估(FINS_FXV)取代了经典外币估值(FAGL_FCV),提供更优化的财务结算功能。主要创新包括:增量发布逻辑、简化账户配置、行项目级估值可见性等。该功能支持IFRS9等会计准则,通过会计原则(Accounting Principle)进行配置,需完成财务报表版本定义、语义标记分配等必要设置。系统演示展示了从汇率维护(FB60/MIRO)、测试运行到最终过账(FB03)的完整流程,能自动计算并过账汇率差异。高级外币评估简化了期末结算操作,

yanzibing99的博客 1260

【WRF-Chem教程-附录 C】闪电-NOx 参数化方案详解

闪电-NOx 参数化方案详解

WW、forever的博客 974

用HTML编写各式各样的图形

一.圆环 1.代码部分 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <style type="text/css"> #one{ width: 400px; height: 400px; background-colo...

lxl513513的博客 3865

YOLO26 vs YOLOv12 vs YOLOv10:工业场景性能实测,速度/精度/部署难度全对比(附完整测试代码)

YOLO26:工业场景全能型选手,无NMS+无DFL设计让部署和推理都省心,小目标精度优势明显,CPU推理速度提升43%,适合大多数生产线场景YOLOv12:中大型目标检测专家,Area Attention在复杂背景下表现出色,适合汽车、家电等大型零部件检测YOLOv10:速度狂魔,GPU上性能领先,轻量化版本适合边缘部署,但小目标精度略逊,适合对实时性要求极高的分拣线场景。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 625

HTML5 Canvas(1) 绘制基本图形和线条

window.onload = function () { //得到2D渲染上下文 var context = document.getElementById("myCanvas").getContext("2d"); //填充一个矩形 var x = 40, y = 40;...

weixin_30846599的博客 87

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

HTML5 canvas 实现回合制战棋游戏(1):加载和绘制图形

HTML5 canvas 实现回合制战棋游戏(1)游戏介绍 游戏介绍 致敬永远的经典英雄无敌3, 本想在网上找个战棋游戏学习下,无奈没有发现python版本的,那就自己来写一个把。 游戏实现了类似英雄无敌3 中战斗场景的回合制玩法: 对战双方每个生物每一轮有一次行动机会,可以行走或攻击对方。 每个生物属性有:行走范围,速度,生命,伤害,防御,攻击 和 是否是远程兵种。 当把对方生物都消灭时,即胜...

marble_xu的博客 5580

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

HTML5动画----canvas基础1(绘制基本图形)

Canvas API应用前景极为广泛,通过canvas元素在网页中创建一块矩形区域,这块区域称为画布,在其中可以绘制各种图形 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> &...

wenmin1987的博客 347

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

《HTML5 Canvas游戏开发实战》——2.1 绘制基本图形

本节书摘来自华章计算机《HTML5 Canvas游戏开发实战》一书中的第2章,第2.1节,作者:张路斌著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。 2.1 绘制基本图形 所谓基本图形,就是指线、矩形、圆等最简单的图形,任何复杂的图形都是由这些简单的图形组合而成的。我们首先来了解一下这些简单图形的绘制方法。2.1.1 画线你可能是第一次接触...

weixin_33966365的博客 230

php画直线圆矩形,Canvas入门(1):绘制矩形、圆、直线、曲线等基本图形_html/css_WEB-ITnose...

1: 2: 3: 4: 5: canvas元素学习 6: 7: 8: 9: 10:canvas元素学习 11: 12: 13:canvas.js:1: window.onload=function() 2: { 3: // 获取canvas 的ID 4: var...

weixin_34117129的博客 359

HTML5学习之-Canvas

1

前端小白的博客 480

使用html5 canvas绘制圆形或弧线

注意:本文属于《html5 Canvas绘制图形入门详解》系列文章中的一部分。如果你是html5初学者,仅仅阅读本文,可能无法较深入的理解canvas,甚至无法顺畅地通读本文。请点击上述链接以了解使用html5 canvas绘制图形的完整内容。 在html5中,CanvasRenderingContext2D对象也提供了专门用于绘制圆形或弧线的方法,请参考以下属性和方法介绍: arc(x, ...

weixin_34138255的博客 306

Canvas绘制网格-6

绘制网格

编程是一门实践技术 557
上一篇: 【JS】JavaScript中对象的创建与原型模式
下一篇: 【Linux】Linux下安装MySQL版本冲突的一个解决方法
励志故事
博客等级 码龄12年 99粉丝 110原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值