canvas中getContext(“2d“) 对象的属性和方法

article/2025/9/12 23:23:31

HTML5中canvas标签用于绘制图像(通过脚本,通常是Js)。

也就是说,canvas元素本身没有绘制能力仅仅是图形容 - 您必须使用脚本来完成实际的绘图任务。

getContext() 方法可返回一个对象,该对象提供了用于在画布上绘图的方法和属性。

以下是getContext("2d") 对象的属性和方法:

一、颜色、样式和阴影

属性描述
fillStyle设置或返回用于填充绘画的颜色、渐变或模式。默认:#000000;color,gradient,pattern
strokeStyle设置或返回用于笔触的颜色、渐变或模式 。同fillStyle
shadowColor设置或返回用于阴影的颜色,必须shadowBlur一起默认:#000000;color
shadowBlur设置或返回用于阴影的模糊级别。 必须shadowColor一起默认:0;number
shadowOffsetX设置或返回阴影与形状的水平距离。默认:0,number正负值
shadowOffsetY设置或返回阴影与形状的垂直距离。默认:0,number正负值
方法描述
createLinearGradient()创建线性渐变(用在画布内容上)。参数(x1,y1,x2,y2)
createPattern()在指定的方向上重复指定的元素。(image,"repeat|repeat-x|repeat-y|no-repeat");
createRadialGradient()创建放射状/环形的渐变(用在画布内容上) 参数(x1,y1,r1,x2,y2,r2)
addColorStop()规定渐变对象中的颜色和停止位置。stop:在0.0-1.0之间(stop, color)

二、线条样式

属性描述
lineCap 设置或返回线条的结束端点样式

默认:butt:末端平直

round:圆形线帽

square:正方形线帽

lineJoin 设置或返回两条线相交时,所创建的拐角类型。

默认:bevel:斜角

round:圆角
miter:尖角

lineWidth 设置或返回当前的线条宽度。number:一以像素计
miterLimit 设置或返回最大斜接长度。 存在lineJoin为miter才有意义number:正数

 解释斜接长度:

三、矩形

方法描述参数
rect() 创建矩形。(x,y,width,height)
fillRect()绘制"被填充"的矩形。默认填充色为黑色,使用fillStyle修改填充色(x,y,width,height)
strokeRect() 绘制矩形(无填充)。 默认笔触色为黑色,使用strokeStyle修改填充色(x,y,width,height)
clearRect()在给定的矩形内清除指定的像素(x,y,width,height)

四、路径

方法描述参数
fill() 填充当前绘图(路径) ,填充颜色和fillStyle搭配使用
stroke() 绘制已定义的路径。(执行)
beginPath() 起始一条路径,或重置当前路径。 
moveTo() 把路径移动到画布中的指定点,不创建线条。(x,y)开始坐标
closePath() 创建从当前点回到起始点的路径。
lineTo() 添加一个新点,然后在画布中创建从该点到最后指定点的线条。(x,y)结束坐标
clip() 从原始画布剪切任意形状和尺寸的区域。 
quadraticCurveTo() 创建二次贝塞尔曲线。

cpx:贝塞尔控制点的x坐标

cpy:贝塞尔控制点的y坐标

x,y:结束的x,和y坐标

bezierCurveTo()创建三次贝塞尔曲线。 

(cpx1,cpy1,cpx2,cpy2,x,y)

arc()创建弧/曲线(用于创建圆形或部分圆)。

x,y圆心的坐标

r圆半径

sAngle:起始角

eAngle:结束角

counterclockwise:可选。规定应该逆时针还是顺时针绘图。False = 顺时针,true = 逆时针。

arcTo()创建两切线之间的弧/曲线。

x1,y1:第一条两切线交点的横纵坐标。

x2,y2:第二条两切线交点的横纵坐标。

r:弧半径

isPointInPath()如果指定的点位于当前路径中,则返回 true,否则返回 false。x,y测试坐标

解释二次和三次贝塞尔曲线控制点坐标:

 圆参数介绍:

 

五、转换

方法描述参数
scale() 缩放当前绘图至更大或更小。定位也会被缩放scaleWidth,scaleHeight:缩放的宽高
rotate() 旋转当前绘图angle:以弧度计degrees*Math.PI/180
translate()重新映射画布上的 (0,0) 位置。x,y:横纵坐标
transform() 替换绘图的当前转换矩阵。

a:水平缩放绘图

b: 水平倾斜绘图

c:垂直倾斜绘图

d:垂直缩放绘图

e:水平移动绘图

f:垂直移动绘图

setTransform()将当前转换重置为单位矩阵。然后运行 transform()。同上

六、文本

属性描述
font 设置或返回文本内容的当前字体属性

默认值:10px sans-serif

font属性值详细参数见

HTML canvas font 属性 | 菜鸟教程

textAlign设置或返回文本内容的当前对齐方式。start,end,center,left,right
textBaseline 设置或返回在绘制文本时使用的当前文本基线。alphabetic,top,hanging,middle,ideographic,bottom
方法描述参数
fillText() 在画布上绘制"被填充的"文本。

text:绘制文本

x,y:位置横纵坐标

maxWidth:可选,最大文本宽度

strokeText() 在画布上绘制文本(无填充)。同上
measureText() 返回包含指定文本宽度的对象。txt

七、绘制图像

方法描述参数
drawImage() 向画布上绘制图像、画布或视频。

(img,x,y);详情参数见

HTML canvas drawImage() 方法 | 菜鸟教程

八、像素操作

属性描述
width返回 ImageData 对象的宽度。 
height返回 ImageData 对象的高度。
data返回一个对象,其包含指定的 ImageData 对象的图像数据。
方法描述参数
createImageData()创建新的、空白的 ImageData 对象。

width:宽度

height:高度

imageData:另一个imageData对象

getImageData()返回 ImageData 对象,该对象为画布上指定的矩形复制像素数据。

x,y:开始复制的左上角位置的 x ,y坐标(以像素计)。

width,height:复制矩形区域的宽高

putImageData()把图像数据(从指定的 ImageData 对象)放回画布上。

(imgData,x,y)参数详情见

HTML canvas putImageData() 方法 | 菜鸟教程

九、合成

属性描述
globalAlpha设置或返回绘图的当前 alpha 或透明值。number:0.0-1.0
globalCompositeOperation 设置或返回新图像如何绘制到已有的图像上。默认:source_over使用详情见HTML canvas globalCompositeOperation 属性 | 菜鸟教程

10、其他

 以上属于学习笔记,也就是在学习的过程中把东西敲下来加深印象,具体内容请看下面链接HTML 画布 | 菜鸟教程


http://chatgpt.dhexx.cn/article/O4oEJuii.shtml

相关文章

Debug:无法找到 getContext() 方法

Mybatis反向生成Swagger自动注释 - SegmentFault 思否 在使用该插件时 无法找到 getContext() 方法,是因为 mybatis-generator-core版本高于1.4.0,建议使用1.4.0一下版本进行构建

Android Context解析以及getContext()、getApplication()、getApplicationContext()和getBaseContext()区别

文章目录 Context 介绍Context数量getContext()、getApplication()、getApplicationContext()和getBaseContext()区别getContextgetApplication()、getApplicationContext()getBaseContext() Context 介绍 Android程序不像Java程序一样,随便创建一个类,…

sws_getContext和sws_scale分析

struct SwsContext *sws_getContext(int srcW, int srcH, enum AVPixelFormat srcFormat, int dstW, int dstH, enum AVPixelFormat dstFormat, int flags, SwsFilter *srcFilter, SwsFilter *dstFilter, const double *param);创建转换上下文,参数分析:…

View Fragment Window 的 getContext() 一定返回 Activity 吗?

目录 1. 问题分析 1.1 Context 有哪些? 首先,我们回顾一下 Context 以及它的子类,在之前的这篇文章里,我们曾经讨论过:《Android | 一个进程有多少个 Context 对象(答对的不多)》。简单来说&a…

HTML5 canvas 参考手册

HTML5 <canvas> 参考手册 描述 HTML5 <canvas> 标签用于绘制图像&#xff08;通过脚本&#xff0c;通常是 JavaScript&#xff09;。 不过&#xff0c;<canvas> 元素本身并没有绘制能力&#xff08;它仅仅是图形的容器&#xff09; - 您必须使用脚本来完成实…

Unix/Linux编程:getcontext、setcontext

ucontext该结构提供了所谓的用户上下文信息&#xff0c;用于描述调用信号处理器函数前的进程状态&#xff0c;其中包括上一个进程信号掩码以及寄存器的保存值&#xff0c;例如程序计数器&#xff08;cp&#xff09;和栈指针寄存器&#xff08;sp&#xff09;&#xff0c;使用结…

Andriod getContext和getActivity

原创文章&#xff0c;如有转载&#xff0c;请注明出处&#xff1a;http://blog.csdn.net/myth13141314/article/details/62045162 MainActivity.this&#xff1a;表示MainActivity对象&#xff0c;一般用在内部类中指示外面的this&#xff0c;如果在内部类直接用this&#xff…

岭回归模型|机器学习|回归算法

目录 1.岭回归模型1.1背景1.2损失函数 2.相关代码2.1RidgeRegression类2.2求解代码2.3绘图代码 3.直接调库使用 1.岭回归模型 1.1背景 对于回归问题来说&#xff0c;它们的基本内容基本上都是相同的&#xff0c;所以岭回归模型与线性回归模型类似&#xff1a; y θ 0 x 0 …

机器学习学习笔记(13)----岭回归(Ridge回归)

在《机器学习学习笔记&#xff08;4&#xff09;----线性回归的数学解析》&#xff0c;我们通过计算线性模型的损失函数的梯度&#xff0c;得到使得损失函数为最小值的的解析解&#xff0c;被称之为普通最小二乘法&#xff1a; (1) 公式(1)能够求得的前提是是满秩矩阵&#xf…

Python机器学习教程—岭回归的原理和实现

在某些场景下&#xff0c;线性回归无法给出一个效果好的预测模型&#xff0c;那么就需要使用线性回归的升级版&#xff0c;去面对更复杂的应用场景&#xff0c;本文所记录的岭回归便是线性回归的一个升级版。 目录 强势样本对模型的影响 实例 岭回归定义 岭回归的实现 岭…

岭回归和Lasso回归

偏差和方差 机器学习算法针对特定数据所训练出来的模型并非是十全十美的&#xff0c;再加上数据本身的复杂性&#xff0c;误差不可避免。说到误差&#xff0c;就必须考虑其来源&#xff1a;模型误差 偏差&#xff08;Bias&#xff09; 方差&#xff08;Variance&#xff09; …

基于Python的岭回归模型

本文是使用Python进行岭回归模型分析&#xff0c;消除多重共线性 一、岭回归原理 自变量之间存在多重共线性&#xff0c;当时&#xff0c;加上一个正的常数矩阵(K>0)&#xff0c;岭回归估计定义公式&#xff1a; &#xff08;k为岭参数&#xff09; 的奇异程度比奇异程度小&…

用SPSS进行岭回归分析

打开SPSS将数据输入到SPSS中。 点击左上角文件->新建->语法 输入 * Encoding: UTF-8. INCLUDE D:\Program Files\IBM\SPSS\Statistics\27\Samples\Simplified Chinese\Ridge regression.sps. ridgereg enter x1 x2 x3 x4 x5 x6 x7 x8 x9 x10/depy.include内容需要自己寻找…

R语言与岭回归

岭参数的一般选择原则 选择k&#xff08;或lambda&#xff09;值&#xff0c;使得&#xff1a;各回归系数的岭估计基本稳定用最小二乘估计时符号不合理的回归系数&#xff0c;其岭回归的符号变得合理回归系数没有不合乎实际意义的绝对值残差平方和增大的不多 用R语言进行岭回归…

岭回归(Ridge Regression)及实现

岭回归(Ridge Regression)及实现 https://blog.csdn.net/google19890102/article/details/27228279 一、一般线性回归遇到的问题 在处理复杂的数据的回归问题时&#xff0c;普通的线性回归会遇到一些问题&#xff0c;主要表现在&#xff1a; 在处理复杂的数据的回归问题时&…

岭回归(R语言)

代码实现如下&#xff1a; data3.3<-read.csv("C:/Users/Administrator/Desktop/data3.3.csv",headTRUE) datas<-data.frame(scale(data3.3[,1:6])) # 对样本数据进行标准化处理并转换为数据框的存储格式 library(MASS) ridge3.3<-lm.ridge(y~.-1,datas,l…

多元线性回归-岭回归

目录 1.精确相关关系 2.高度相关关系 3.多重共线性与相关性 4.岭回归 5.linear_model.Ridge 5.1.案例1&#xff1a;加利福尼亚房屋价值数据 5.2.案例2:波士顿房价数据集 6.选取最佳正则化参数取值 1.精确相关关系 精确相关关系&#xff0c;即完全相关。如矩阵A并不是满…

回归——岭回归

1、作用 岭回归是一种专用于共线性数据分析的有偏估计回归方法&#xff0c;实质上是一种改良的最小二乘估计法&#xff0c;通过放弃最小二乘法的无偏性&#xff0c;以损失部分信息、降低精度为代价获得回归系数更为符合实际、更可靠的回归方法&#xff0c;对病态数据的拟合要强…

【机器学习04】岭回归

4 岭回归 4.1 简介 普通线性回归模型使用基于梯度下降的最小二乘法&#xff0c;在最小化损失函数的前提下&#xff0c;寻找最优模型参数&#xff0c;在此过程中&#xff0c;包括少数异常样本在内的全部训练数据都会对最终模型参数造成程度相等的影响&#xff0c;异常值对模型…

机器学习——岭回归

岭回归的简单介绍 什么是岭回归&#xff1f;什么时候要用到岭回归&#xff1f;岭回归是一种解决标准方程法不能求逆矩阵时的办法。我们都知道&#xff0c;用标准方程法最大的一个缺点就是当数据的特征多于数据的样本时&#xff0c;标准方程法是不能使用的&#xff0c;因为不能…