1、Canvas的基本用法

1、Canvas是什么?

HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像。

画布是一个矩形区域,您可以控制其每一像素。

canvas 拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。

2、创建 Canvas 元素

规定元素的 id、宽度和高度:

<canvas class="canvas" width="200px" height="200px"></canvas>

3、通过 JavaScript 来绘制

canvas 元素本身是没有绘图能力的。所有的绘制工作必须在 JavaScript 内部完成:

var c=document.getElementById("myCanvas"); 
var cxt=c.getContext("2d"); ​
cxt.fillStyle="#FF0000"; ​
cxt.fillRect(0,0,150,75); 

4、通过JavaScript创建canvas

function createCanvas(){
document.body.innerHTML = ""
mycanvas =document.getElementByIdx("mycanvas");
context = mycanvas.getContext("2d");
}

5、绘制矩形

function drawRect(){
context.fillStyle="#ff0000";
context.translate(100,200);//移动
context.scale(1,0.5);//缩放
context.rotate(30);//旋转
context.fillRect(0,0,200,200);
}

  

6、绘制图像

function drawImage(){
var img = new Image();
img.onload = function(){
context.drawImage(img,0,0);//三个参数图片源对象、摆放的位置
}
img.src = "img/logo.png"
}

7、使用Canvas绘制直线

function pageLoad(){var c= $('mycanvas');var ctx = c.getContext('2d');ctx.moveTo(20,30);//第一个起点ctx.lineTo(120,90);//第二个点ctx.lineTo(220,60);//第三个点(以第二个点为起点)ctx.lineTo(250,90);//第四个点(以第二个点为起点)ctx.lineWidth=3;ctx.strokeStyle = 'blue';ctx.stroke();//stroke() 方法会实际地绘制出通过 moveTo() 和 lineTo() 方法定义的路径。默认颜色是黑色。
} 

8、绘制渐变曲线

function pageLoad2(){var can = $('mycanvas');var cans = can.getContext('2d');cans.moveTo(0,0);cans.lineTo(400,300);var grd = cans.createLinearGradient(0,0,400,300);//线性渐变的起止坐标grd.addColorStop(0,'red');//创建渐变的开始颜色,0表示偏移量,个人理解为直线上的相对位置,最大为1,一个渐变中可以写任意个渐变颜色grd.addColorStop(0.5,'green');grd.addColorStop(1,'yellow');cans.lineWidth=20;cans.strokeStyle = grd;cans.stroke();
}

  

8、绘制一个线性渐变的矩形

function pageLoad2(){var can = $('mycanvas');var cans = can.getContext('2d');cans.moveTo(0,0);cans.lineTo(400,300);var grd = cans.createLinearGradient(0,0,0,100);//线性渐变的起止坐标grd.addColorStop(0,'red');//创建渐变的开始颜色,0表示偏移量,个人理解为直线上的相对位置,最大为1,一个渐变中可以写任意个渐变颜色grd.addColorStop(0.5,'green');grd.addColorStop(1,'yellow');cans.fillStyle=grd;cans.fillRect(0,0,200,100);
}

  

 

转载于:https://www.cnblogs.com/hamigua/p/5512667.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/271776.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用lambda表达式实现Runnable

用lambda表达式实现Runnable lambda表达式替换了原来匿名内部类的写法&#xff0c;没有了匿名内部类繁杂的代码实现&#xff0c;而是突出了&#xff0c;真正的处理代码。最好的示例就是 实现Runnable 的线程实现方式了: 用() -> {}代码块替代了整个匿名内部类 Test public …

软件:推荐六款实用的录频软件

❤️作者主页&#xff1a;IT技术分享社区 ❤️作者简介&#xff1a;大家好,我是IT技术分享社区的博主&#xff0c;从事C#、Java开发九年&#xff0c;对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️个人荣誉&#xff1a; 数据库领域优质创作者&#x1f3c6;&#x…

安装 openSUSE Leap 42.1 之后要做的 8 件事

导读openSUSE Leap 确实是个巨大的飞跃&#xff0c;它允许用户运行一个和 SUSE Linux 企业版拥有同样基因的发行版。和其它系统一样&#xff0c;为了实现最佳的使用效果&#xff0c;在使用它之前需要做些优化设置。下面是一些我在我的电脑上安装 openSUSE Leap 之后做的一些事情…

Java8 Stream Collectors groupingBy使用

分组List并显示其总数。 Test public void test8() {//3 apple, 2 banana, others 1List<String> items Arrays.asList("apple", "apple", "banana","apple", "orange", "banana", "papaya");Map…

操作系统:分享10个经常用的cmd命令

电脑高手操作电脑时&#xff0c;通常都是在“运行”中直接输入“命令”来直接调出相应的操作。如果大家也想要像电脑高手一样&#xff0c;但是却又不知道“运行”命令有哪些&#xff1f;在这里&#xff0c;小编就为大家分享10个“运行”命令&#xff0c;让大家体验到成为电脑高…

idea创建Package时出现包名累加,而不是树形结构解决方法

idea打开工程的时候包名叠在一起了 点击箭头处按钮,把第一第二行勾去掉 如下 最终效果

电脑键盘中英文按键有哪些?有什么作用?

对于电脑键盘&#xff0c;相信大家并不陌生&#xff0c;而在电脑键盘上面有着很多按键&#xff0c;除了数字按键和字母按键之外&#xff0c;还有很多看不懂的英文按键。那么这些英文按键是什么意思呢&#xff1f;如果并不了解&#xff0c;那么小编就为大家介绍所有英文按键的意…

在github中使用pages上传自己的网页

转载自&#xff1a;http://www.cnblogs.com/lijiayi/p/githubpages.html 学了前端小半年&#xff0c;如今写了个自己的网页想要去应聘&#xff0c;却发现部署很麻烦&#xff0c;部署到阿里云之类&#xff0c;买域名啊啥的还要收费&#xff0c;说贵也不贵&#xff0c;但我就是傲…

使用lamba中stream 进行分组统计

对一个list中的元素进行分组&#xff0c;并统计各个元素出现的次数。放入map<String,Long>。 代码如下: Test public void test8() {List<String> items Arrays.asList("1", "2", "3","4", "1", "3"…

php 表单select,表单控件select标签是如何使用的

表单控件select标签是用来创建下拉列表的&#xff0c;通过标签来定义可用选项以及其他属性来设置表单控件的选择个数等。今天将介绍的是HTML中的表单控件select的用法&#xff0c;具有一定的参考价值&#xff0c;希望对大家有所帮助。【推荐课程&#xff1a;HTML教程】select标…

电脑经常死机是什么原因?如何解决?

目录 一、电脑经常死机是什么原因&#xff1f; 二、电脑经常死机如何解决&#xff1f; ​​​​​​​ 一、电脑经常死机是什么原因&#xff1f; 1、电脑频繁死机&#xff0c;在进行CMOS设置时也会出现死机现象&#xff0c;一般由硬件问题引起的&#xff0c;散热不良…

Win10磁盘占用达到100%,优化一下就解决了

❤️作者主页&#xff1a;IT技术分享社区 ❤️作者简介&#xff1a;大家好,我是IT技术分享社区的博主&#xff0c;从事C#、Java开发九年&#xff0c;对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️个人荣誉&#xff1a; 数据库领域优质创作者&#x1f3c6;&#x…

2、IDEA以新窗口的形式打开多个项目

IDEA以新窗口的形式打开多个项目 修改1处如图所示

Win10 该如何设置FTP呢,详细设置步骤

复印&#xff0c;打印&#xff0c;扫描的日常操作是每个办公人员的必备技能&#xff0c;我们来了解一下扫描至FTP的具体操作方法。 要使用FTP功能扫描文件到电脑&#xff0c;首先要需要一台可以接收文件的FTP服务器&#xff0c;这个服务器我们可以借助第三方软件搭建&#xff0…

Linux和Windows操作系统有什么区别?

目录 1、Linux系统的优缺点 2、Linux系统与Windows系统的区别 在所有操作系统中&#xff0c;Windows系统属于最多用户使用的操作系统&#xff0c;而这一次小编要来跟大家聊聊Linux系统&#xff0c;目前很多笔记本也已经开始预装Linux系统了。那么Linux系统有什么优缺点呢&#…

idea自动生成not null判断语句

自动生成not null这种if判断&#xff0c;在IDEA里有很多种办法&#xff0c;其中一种办法你可能没想到。 直接输入notnull并回车&#xff0c;IDEA就好自动生成if判断了

C#三层开发做学生管理系统

1.定义各个层 2.添加各个层之间的引用 DAL 层调用Model BLL层调用DAL和Model UI层调用BLL和Model层 Model层供各个层调用 3.根据数据库建立实体类,每张表对应一个实体类 4.在DAL层调用MyTool类和SQLhelper类,添加system.Configuration 引用 并编写app.config 在SqlHelper类调用…

硬件:选购CPU和显卡需了解的参数介绍

❤️作者主页&#xff1a;IT技术分享社区 ❤️作者简介&#xff1a;大家好,我是IT技术分享社区的博主&#xff0c;从事C#、Java开发九年&#xff0c;对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️个人荣誉&#xff1a; 数据库领域优质创作者&#x1f3c6;&#x…

SDUT 3258 Square Number 简单数学

和上一题一样&#xff0c;把平方因子除去&#xff0c;然后对应的数就变成固定的 #include <cstdio> #include <iostream> #include <algorithm> #include <cstring> using namespace std; typedef long long LL; const int N1e65; const int INF0x3f3f…

RedisTemplate中opsForValue()中的方法

使用redisTemplate.opsForValue().set(); 先引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> 注入redisTemplate redisTempla操作String类…