首页 > 其他分享 >canvas基础1

canvas基础1

时间:2023-04-06 18:02:55浏览次数:36  
标签:canvas 浏览器 基础 50 getContext let context drawing

canvas基础1

一、canvas 是 HTML5 提供的画画本

// 创建 <canvas> 元素时至少要设置其 width 和 height 属性,这样才能告诉浏览器在大面积上绘图。

// 出现在开始和结束标签之间的内容是后备数据,会在浏览器不支持 <canvas> 元素时显示。

<canvas id="drawing" width="200" height="200">
    你的浏览器不支持HTML5
</canvas>
    
// 要在画布上绘制图形,首先要取得绘图上下文,getContext() 方法可以获取对绘图上下文的引用。(2
    d 代表平面图形)
    
    
<script>  
let drawing = document.getElementById("drawing");
         
// 确保浏览器支持<canvas>
if (drawing.getContext) {
         
  let context = drawing.getContext("2d");
  
  // 其他代码
}
</script>

二、填充和描边

// 2d上下文的坐标原点(0,0)在 <canvas>元素的左上角。
// 所有坐标值都相对于该点计算,因此 x 坐标向右增长,y 坐标向下增长。

// 2d上下文有两个基本绘制操作:填充和描边。
// 填充以指定样式(颜色、渐变或图像)自动填充形状,而描边只为图形边界着色。
// 填充样式	-- fillStyle
// 描边样式 -- strokeStyle


let drawing = document.getElementById("drawing");
         
// 确保浏览器支持<canvas>
if (drawing.getContext) {
         
  let context = drawing.getContext("2d");
  context.strokeStyle = "red";
  context.fillStyle = "#0000ff";
}

三、绘制矩形

// 矩形是唯一一个可以可以直接在 2d 绘图上下文中绘制的形状。
// 与绘制矩形相关的方法有3个:fillRect()、strokeRect()和clearRect()。
// 四个参数(x坐标、y坐标、宽度、高度)


let drawing = document.getElementById("drawing");
         
// 确保浏览器支持<canvas>
if (drawing.getContext) {
  let context = drawing.getContext("2d");

         
  // 画一个红色矩形
  context.fillStyle = "#ff0000";
  context.fillRect(10, 10, 50, 50);
         
  // 画一个半透明的蓝色矩形
  context.fillStyle = "rgba(0,0,255,0.5)";
  context.fillRect(30, 30, 50, 50);
}

// 浏览器输出如下

绘制矩形1 canvas01.png

// strokeRect() 方法使用通过 strokeStyle 的属性指定的颜色绘制矩形轮廓。

let drawing = document.getElementById("drawing");
         
// 确保浏览器支持<canvas>
if (drawing.getContext) {
  let context = drawing.getContext("2d");

         
  // 画一个红色轮廓的矩形
  context.strokeStyle = "#ff0000";
  context.strokeRect(10, 10, 50, 50);
         
  // 画一个半透明的蓝色轮廓的矩形
  context.strokeStyle = "rgba(0,0,255,0.5)";
  context.strokeRect(30, 30, 50, 50);
}

// 浏览器输出如下

绘制矩形2 canvas02.png

// 使用 clearRect() 方法可以擦除画布中某个区域。
// 该方法用于把绘图上下文中来的某个区域变透明。

let drawing = document.getElementById("drawing");
         
// 确保浏览器支持<canvas>
if (drawing.getContext) {
  let context = drawing.getContext("2d");
         
  // 画一个红色矩形
  context.fillStyle = "#ff0000";
  context.fillRect(10, 10, 50, 50);
         
  // 画一个半透明的蓝色矩形
  context.fillStyle = "rgba(0,0,255,0.5)";
  context.fillRect(30, 30, 50, 50);
         
  // 清除与前面两个矩形重叠的一个小矩形
  context.clearRect(40, 40, 10, 10);
}

// 浏览器输出如下

绘制矩形3 canvas03.png

博文查考

JavaScript 高级程序设计(第4版) --【美】马特.弗里斯比 著

标签:canvas,浏览器,基础,50,getContext,let,context,drawing
From: https://blog.51cto.com/u_14483476/6173937

相关文章

  • 量化交易之MQL4篇 - 对象函数的基础应用
    voidOnStart(){stringvlineObject="vlineObject";stringhlineObject="hlineObject";stringtrendObject="trendObject";stringtrendbyangleObject="trendbyangleObject";stringfi......
  • 学习一 ——HTML的基础标签
    HTML意为超文本标记语言。在HTML+CSS+JS的体系中主要构建网站内容展示。<meta>设置编码方式例如UTF-8;GBK等。<ul>表示无序列表,<ol>有序列表<p>表示段落,<u>表示下划线 <b>字体加粗<i>斜体<sub>下标 <sup>上标 <alt>表示HTML元素本身的物件无法被渲染时,就可以显示alt......
  • python面向对象基础
    1.__str__def__str__(self):return'****'print对象时,打印的为__str__函数返回的值2.__del__()def__del__(self):#pass当删除对象时,将会自动调用__del__函数(删除对象:delobj)python继承:classA(B):pass其中A继承Bpython3+classA(object):pass任......
  • canvas绘制3D金字塔
    varcanvas1=document.getElementById("canvas1");varcontext=canvas1.getContext("2d");canvas1.width=400;canvas1.height=400;context.beginPath();context.moveTo(0,360);context.lineTo(200,400);context.lineTo(400,360)......
  • 计算机系统 ( 计算机硬件基础 )刷题——密钥
                                                                               ......
  • JAVA - 基础篇
    时隔这么久,之前学习JAVA一直没有坚持下来,这次一定要坚持啊。是跟着B站尚硅谷的老师学习的!资料非常齐全,讲得也很认真仔细。这里会记录一些简单的归纳,很全很全的在老师的资料里就有!关注公众号就能领取,尚硅谷教育。前言学习一门计算机语言真的是一件很奇妙的事情,单靠简单的......
  • 深度学习基础入门篇[三]:优化策略梯度下降算法:SGD、MBGD、Momentum、Adam、AdamW
    1.梯度下降算法(优化器)1.1原理解释如果我们定义了一个机器学习模型,比如一个三层的神经网络,那么就需要使得这个模型能够尽可能拟合所提供的训练数据。但是我们如何评价模型对于数据的拟合是否足够呢?那就需要使用相应的指标来评价它的拟合程度,所使用到的函数就称为损失函数(LossFu......
  • Protege使用教程(基础篇)
    此新手入门对应protege3.1.x版本。通过制作一个简单的动物本体,来使大家了解protege建立owl的基础用法。步骤1建立新的项目。打开protege,然后会出现对话框,点击CreateNewProject...,出现CreateNewProject对话框后,选择OWLFlies(.owlor.rdf)后,点击Finish,而不选Next。步骤2建......
  • 2-Java基础语法
    1.注释注释是对代码的解释和说明文字。Java中的注释分为三种:单行注释://这是单行注释文字多行注释:/_这是多行注释文字这是多行注释文字这是多行注释文字_/注意:多行注释不能嵌套使用。文档注释(暂时用不到):/*_这是多行注释文字这是多行注释文字这是多......
  • 深度学习基础入门篇[二]:机器学习常用评估指标:AUC、mAP、IS、FID、Perplexity、BLEU、
    A.深度学习基础入门篇[二]:机器学习常用评估指标:AUC、mAP、IS、FID、Perplexity、BLEU、ROUGE等详解1.基础指标简介机器学习的评价指标有精度、精确率、召回率、P-R曲线、F1值、TPR、FPR、ROC、AUC等指标,还有在生物领域常用的敏感性、特异性等指标。在分类任务中,各指标的计算......