Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >canvas画布实现矩形的绘制

canvas画布实现矩形的绘制

作者头像
十月梦想
发布于 2018-08-29 03:03:20
发布于 2018-08-29 03:03:20
2.6K00
代码可运行
举报
文章被收录于专栏:十月梦想十月梦想
运行总次数:0
代码可运行

简单实现两种矩形的绘制:

第一种矩形背景填充简单说就是背景填充的实心矩形

代码实现:

绘制一个实心矩形cv.fillRect(x,y,width,height)绘制之前声明绘制的实心矩形颜色使用fillStyle

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<canvas id="canvas" width="500" height="400">
		<script type="text/javascript">
			window.onload=function(){
				//(获得滑板)抓取元素
			var c=document.getElementById('canvas');
			//获取绘画环境
			var cv=c.getContext('2d');
			//指定填充颜色
			 cv.fillStyle='red';
			 //绘制一个矩形cv.fillRect(x,y,width,height)
			 cv.fillRect(100,100,200,200);
			}
			
		</script>
	</canvas>

第二种矩形有线条构成,矩形内部没有填充可以设置矩形线条的颜色,线条宽度也叫空心矩形

代码实现:

绘制一个空心矩形cv.strokeRect(x,y,width,height)绘制之前声明绘制的实心矩形颜色使用strokeStyle,线条宽度使用lineWidth=10;表示线条宽度10像素!

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<canvas id="canvas" width="500" height="400">
<script type="text/javascript">
window.onload=function(){
//(获得滑板)抓取元素
var c=document.getElementById('canvas');
//获取绘画环境
var cv=c.getContext('2d');
//指定填充颜色
//线条宽度lineWidth='';
cv.lineWidth=5;
//线条填充颜色strokeStyle='颜色'
cv.strokeStyle='#26faaf';
//空心矩形strokerect(x,y,width,height)
cv.strokeRect(50,80,220,220);
}
</script>
</canvas>

注意:填充使用fillRect,绘制空心使用strokeRect,样式等属性使用在构造矩形之前进行使用,填充相关使用fill,空心相关的使用stroke


get一下:

        在矩形内进行清除已经绘制矩形的某个区域可以使用清除实现clearRect(left,top,width,height);

矩形内部清除代码实现:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<canvas id="canvas" width="500" height="400">
		<script type="text/javascript">
			window.onload=function(){
				//(获得滑板)抓取元素
			var c=document.getElementById('canvas');
			//获取绘画环境
			var cv=c.getContext('2d');
			//指定填充颜色
			cv.fillStyle='red';
			//绘制一个矩形cv.fillRect(x,y,width,height)
			cv.fillRect(100,100,200,200);
			//线条宽度lineWidth='';
			// 	cv.lineWidth=5;
			// 	//线条填充颜色strokeStyle='颜色'
			// 	cv.strokeStyle='#26faaf';
			// //空心矩形strokerect(x,y,width,height)
			// cv.strokeRect(50,80,220,220);
			//清除绘图部分clearRect(x,y,width,height),清空矩形内的像素(背景填充)
				cv.clearRect(50,80,180,80);
			}
			
		</script>
	</canvas>
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-1-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python学习:内建属性、内建函数的教程
子类没有实现__init__方法时,默认自动调用父类的。 如定义__init__方法时,需自己手动调用父类的 __init__方法。
闻说社
2025/02/25
770
Python学习:内建属性、内建函数的教程
python 中__setattr__, __getattr__,__getattribute__, __call__使用方法
object._getattr_(self, name) 拦截点号运算。当对未定义的属性名称和实例进行点号运算时,就会用属性名作为字符串调用这个方法。如果继承树可以找到该属性,则不调用此方法 实例instance通过instance.name访问属性name,只有当属性name没有在实例的__dict__或它构造类的__dict__或基类的__dict__中没有找到,才会调用__getattr__。当属性name可以通过正常机制追溯到时,__getattr__是不会被调用的。如果在__getattr__(s
用户1214487
2018/01/24
1.3K0
python笔记60 - 类里面静态方法(@staticmethod),类方法(@classmethod)和实例方法(self)
python 类里面常用的方法有3个:静态方法(@staticmethod),类方法(@classmethod)和实例方法(self) 本篇讲解这3种方法在使用上有什么区别。
上海-悠悠
2021/08/20
9.4K0
五个与Python属性相关的魔术方法
今天要给大家介绍五个魔术方法,他们都与Python属性相关,涉及获取、删除和修改属性,我们一起来看看吧。
罗罗攀
2021/12/06
3340
python笔记58-类里面的__dict__属性
python是面向对象的,对象有属性和方法,可以通过__dict__查看对象的属性
上海-悠悠
2021/08/20
3830
__setattr__,setattr(),getattr__,getattr()及__getattribute__的区别
这里下面用网上比较热的代码进行测试和注释,因本人接触Python不足两星期,若有纰漏,请君不吝赐教;
全栈程序员站长
2022/11/15
4050
测试开发进阶(六)
面向对象编程的三大特征:封装,集成,多态 封装:将数据和方法放在一个类中 继承:python中的一个类可以继承于一个或多个类,被继承的叫父类(基类,base class),继承的类叫子类 多态:一类事物拥有多种形态,一个抽象类有多个子类,(多态的概念依赖于继承),不同的子类对象调用相同的方法,产生不同的执行结果,多态可以增加代码的灵活性 多态 # -*- coding:utf-8 -*- """ @Describe: 0816 @Author: zhongxin @Time: 2019-08-16 20:3
zx钟
2019/08/20
3840
python class 一点总结
Python class 总结 细数class中的 __**__ __init__(self, *values) 对象的初始化函数,初始化类的实例时,会调用这个方法 __str__(self)
ke1th
2018/01/02
6690
Datawhale组队学习 -- Task07:类、对象与魔法方法
对象是类的实例。换句话说,类主要定义对象的结构,然后我们以类为模板创建对象。类不但包含方法定义,而且还包含所有实例共享的数据。
余生大大
2022/11/02
3190
Datawhale组队学习 -- Task07:类、对象与魔法方法
Python - 描述器
我们可以使用 Python 自带的 property 装饰器 来控制属性的访问,下面这个例子通过 property 控制了 Person 的 age 属性的访问和修改
小歪
2019/05/14
8990
深入理解python面向对象-特殊成员(补)
定义一个instance类变量,然后重载__new__方法,这样就能确定此类只创建一个实例,但是返回值是一个实例对象,所以__init__每次还是会被调用。__new__重载方法的返回值有两种方式:
星星在线
2019/06/05
6190
Python基础(10)——属性
子类没有实现__init__方法时,默认自动调用父类的。 如定义__init__方法时,需自己手动调用父类的 __init__方法
羊羽shine
2019/05/28
3230
3.python元类编程
1.1.propety动态属性 在面向对象编程中,我们一般把名词性的东西映射成属性,动词性的东西映射成方法。在python中他们对应的分别是属性self.xxx和类方法。但有时我们需要的属性需要根据其他属性动态的计算,此时如果直接使用属性方法处理,会导致数据不同步。下面介绍@property方法来动态创建类属性。 from datetime import datetime,date class User: def __init__(self,name,birthday): self
zhang_derek
2018/05/30
5390
Python基础---类的内置方法
__init__(): __init__方法在类的一个对象被建立时,马上运行。这个方法可以用来对你的对象做一些你希望的初始化。注意,这个名称的开始和结尾都是双下划线。 代码例子:
我被狗咬了
2019/09/23
5160
面向对象-魔术方法
拦截点号运算。当对未定义的属性名称和实例进行点号运算时,就会用属性名作为字符串调用这个方法。如果继承树可以找到该属性,则不调用此方法
星哥玩云
2022/09/08
2730
python面向对象的多态-类相关内置函数-类内置魔法函数-迭代器协议-上下文管理-04
首先强调,多态不是一种特殊的语法,而是一种状态,特性(多个不同对象可以相应同一个方法,长身不同的结果)
suwanbin
2019/09/26
7110
python面向对象的多态-类相关内置函数-类内置魔法函数-迭代器协议-上下文管理-04
python中__get__,__getattr__,__getattribute__的区别
__get__,__getattr__和__getattribute都是访问属性的方法,但不太相同。  object.__getattr__(self, name)  当一般位置找不到attribute的时候,会调用getattr,返回一个值或AttributeError异常。  object.__getattribute__(self, name)  无条件被调用,通过实例访问属性。如果class中定义了__getattr__(),则__getattr__()不会被调用(除非显示调用或引发AttributeError异常)  object.__get__(self, instance, owner)  如果class定义了它,则这个class就可以称为descriptor。owner是所有者的类,instance是访问descriptor的实例,如果不是通过实例访问,而是通过类访问的话,instance则为None。(descriptor的实例自己访问自己是不会触发__get__,而会触发__call__,只有descriptor作为其它类的属性才有意义。)(所以下文的d是作为C2的一个属性被调用) 
用户1214487
2018/07/31
1.7K0
Python自学成才之路 魔术方法之属性访问控制
其中__getattr__只有在属性不存在时会被调用,__getattribute__无论属性是否存在都会被调用,item参数就是要访问的属性。
我是李超人
2020/08/20
5660
python的__get__、__set
内容:     描述符引导         摘要         定义和介绍         描述符协议         调用描述符         样例         Properties         函数和方法         静态方法和类方法 摘要     定义并展示如何调用描述符,展示自定义描述符和几个内置的python描述符,包括函数、属性、静态方法和类方法,通过给出一个Python的示例应用来展示描述符是如何工作的.     熟练掌握描述符不仅让你拥有python使用的额外技巧,并且可以加深对Python内部如何工作的理解,提升对程序设计的能力,而且体会到python的设计优雅之处 定义和介绍     一般来说,描述符是带有“绑定行为”的对象属性,它的属性访问已经被描述符协议中的方法覆盖了.这些方法是__get__(),__set__(),和__delete__().     如果一个对象定义了这些方法中的任何一个,它就是一个描述符.     默认的属相访问是从对象的字典中 get, set, 或者 delete 属性,;例如a.x的查找顺序是:     a.x -> a.__dict__['x'] -> type(a).__dict__['x'] -> type(a)的基类(不包括元类),如果查找的值是对象定义的描述方法之一,python可能会调用描述符方法来重载默认行为,     发生在这个查找环节的哪里取决于定义了哪些描述符方法     注意,只有在新式类中描述符才会起作用(新式类继承type或者object class)     描述符是强有力的通用协议,属性、方法、静态方法、类方法和super()背后使用的就是这个机制,描述符简化了底层的c代码,并为Python编程提供了一组灵活的新工具 描述符协议
py3study
2020/01/19
1.3K0
python-__getattr__ 和
python3完全使用了新式类,废弃了旧式类,getattribute作为新式类的一个特性有非常奇妙的作用。查看一些博客和文章后,发现想要彻底理解getattr和getattribute的区别,实际上需要理解python中属性的查找顺序、描述器(descriptor)、__get__、__set__、__dict__等知识。
py3study
2020/01/17
4190
推荐阅读
相关推荐
Python学习:内建属性、内建函数的教程
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验