前端小白的学习之路(HTML5 二)

提示:<svg>与<canvas>

目录

目录

一、svg标签

 1.简介

2.常用属性

3.标签

4.使用示例

二、canvas标签

1.简介 

2.常用属性与方法

3.使用示例

1)绘制基础图案

2)绘制组合图案(一个爱心)

3)做一幅动图

三、svg与canvas的区别

 



一、svg标签

 1.简介

       SVG(Scalable Vector Graphics,可缩放矢量图形)是一种用于描述二维图形和动画的 XML 标记语言。它支持基本形状、路径、文本、图像、渐变、滤镜等元素,可以创建丰富多彩、高度可定制的图形和动画效果,特点是可以无限缩放而不失真。

2.常用属性

  1. widthheight:用于指定SVG图形的宽度和高度。您可以使用像素(px)、百分比(%)等单位。

    <svg width="200" height="100">
  2. viewBox:用于指定SVG图形的视口框。视口框定义了用户坐标系的范围,并且可以通过它来实现图形的缩放和移动。

    <svg viewBox="0 0 200 100">
  3. xmlns:用于指定XML命名空间。对于SVG,通常是指定为"http://www.w3.org/2000/svg"。

    <svg xmlns="http://www.w3.org/2000/svg">
  4. fill:用于指定SVG图形的填充颜色。

    <svg fill="red">
  5. strokestroke-width:分别用于指定SVG图形的边框颜色和宽度。

    <svg stroke="black" stroke-width="2">
  6. classid:用于为SVG图形指定类名和唯一标识符ID,以便通过CSS或JavaScript进行样式和操作控制。

    <svg class="my-svg" id="svg1">
  7. preserveAspectRatio:用于指定如何适应SVG图形的视口框和容器大小之间的比例关系。

    <svg preserveAspectRatio="xMinYMin meet">

3.<path>标签

<path> 标签用于在 SVG 中定义一个路径。路径可以是直线、曲线、圆弧、贝塞尔曲线等,通过指定路径数据来描述形状。

<path> 标签的主要属性是 d,它用于定义路径的数据。路径数据是一系列的命令和参数,指示了如何绘制路径的形状和轮廓。路径数据中的命令包括移动到(M)、直线到(L)、水平线到(H)、垂直线到(V)、曲线到(C、S、Q、T)、弧线到(A)等。

示例:

<!--使用<path>做一个三角形-->
<svg width="100" height="100" xmlns="http://www.w3.org/2000/svg"><path d="M 10 10 L 90 10 L 50 90 Z" fill="none" stroke="black" />
</svg>

4.使用示例

<!DOCTYPE html>
<html lang="zh-cn"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>基本模板</title><link rel="stylesheet" href="./bootstrap/css/bootstrap.min.css">
</head><body><!-- 矢量图: 一种缩放不容易失真的图片 --><svg xmlns="http://www.w3.org/2000/svg" width="100px" height="100px" fill="green" class="bi bi-1-circle"viewBox="0 0 16 16"><pathd="M1 8a7 7 0 1 0 14 0A7 7 0 0 0 1 8Zm15 0A8 8 0 1 1 0 8a8 8 0 0 1 16 0ZM9.283 4.002V12H7.971V5.338h-.065L6.072 6.656V5.385l1.899-1.383h1.312Z" /></svg><!-- xmlns="http://www.w3.org/2000/svg":指定 SVG 命名空间。width="100px" height="100px":指定 SVG 图形的宽度和高度为 100 像素。fill="green":指定图形的填充颜色为绿色。class="bi bi-1-circle":指定图形的 CSS 类名,用于样式控制。viewBox="0 0 16 16":指定 SVG 图形的视口框,用于定义用户坐标系的范围。<path> 元素:d 属性:定义了 SVG 路径数据,描述了要绘制的路径的形状和轮廓。路径数据使用 SVG 路径命令来描述,如 M、A、L 等。在这个例子中,路径数据描述了一个圆形的轮廓和一个中空的圆环。M1 8a7 7 0 1 0 14 0A7 7 0 0 0 1 8Z:描述了一个圆形轮廓,圆心在坐标 (1, 8),半径为 7。m15 0A8 8 0 1 1 0 8a8 8 0 0 1 16 0Z:描述了一个中空的圆环,圆心在坐标 (15, 0),半径为 8。M9.283 4.002V12H7.971V5.338h-.065L6.072 6.656V5.385l1.899-1.383h1.312Z:描述了圆环内部的一些装饰效果。 -->
</body></html>

二、canvas标签

1.简介 

 canvas 是画布标签,需要结合JS才能使用。应用场景: 1. 展示广告2. 数据统计(柱状图、折线图、饼状图) 3. JS小游戏。

2.常用属性与方法

  1. 属性

    • width:画布的宽度。
    • height:画布的高度。
  2. 获取上下文对象的方法

    • getContext('2d'):获取绘图上下文对象,用于绘制2D图形。
  3. 绘制图形

    • fillRect(x, y, width, height):绘制填充的矩形。
    • strokeRect(x, y, width, height):绘制边框的矩形。
    • clearRect(x, y, width, height):清除指定矩形区域的内容。
    • fillText(text, x, y [, maxWidth]):绘制填充的文本。
    • strokeText(text, x, y [, maxWidth]):绘制边框的文本。
    • drawImage(image, x, y [, width, height]):绘制图像。
  4. 路径绘制

    • beginPath():开始绘制路径。
    • moveTo(x, y):将笔触移动到指定位置。
    • lineTo(x, y):绘制一条直线到指定位置。
    • arc(x, y, radius, startAngle, endAngle [, anticlockwise]):绘制圆弧。(x:圆心的 x 坐标,y:圆心的 y 坐标,radius:圆的半斤,startAngle:起始角度,以弧度为单位 ,endAngle:结束角度,以弧度为单位,anticlockwise(可选):布尔值,表示绘制方向。如果为 true,则逆时针绘制;如果为 false(默认值),则顺时针绘制)
    • closePath():闭合路径。
    • stroke():绘制路径的边框。
    • fill():填充路径。
  5. 样式设置

    • fillStyle:设置图形的填充颜色或样式。
    • strokeStyle:设置图形的边框颜色或样式。
    • lineWidth:设置线条的宽度。
    • font:设置文本的字体样式。
  6. 其他方法

    • save():保存当前绘图状态。
    • restore():恢复之前保存的绘图状态。
    • clearRect(x, y, width, height):清除指定矩形区域的内容。
    • translate(x, y):移动绘图原点。
    • rotate(angle):旋转坐标系。
    • scale(x, y):缩放绘图。

3.使用示例

1)绘制基础图案

<!DOCTYPE html>
<html lang="zh-cn"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>基本模板</title><link rel="stylesheet" href="./bootstrap/css/bootstrap.min.css"><style>canvas {background-color: #ccc;}</style>
</head><body><!-- 特别提醒:canvas不是容器标签,是画布标签,用于绘制图形图像。需要结合JS才能使用。默认尺寸: 300 * 150不是通过css给图片上颜色, 也不是通过css给图片设置尺寸!!如果浏览器提示canvas标签包裹着的文本,就说明该浏览器不支持canvas标签,那就需要换一个浏览器试试!--><canvas id="canvas">当前浏览器不支持canvas标签(画布标签),请换一个浏览器再尝试!</canvas><script>// canvas 是画布标签,需要结合JS才能使用。// 应用场景:// 1. 展示广告// 2. 数据统计(柱状图、折线图、饼状图)// 3. JS小游戏// 有哪些api?// 绘制线// 绘制矩形// 绘制圆形// 绘制图片// 绘制文本// ...// 怎么使用?// 获取canvas对象var canvas = document.getElementById("canvas");// 设置画布尺寸canvas.width = 600;canvas.height = 800;// 获取绘制图形图像的对象 (画笔)var pen = canvas.getContext("2d");console.log(pen);// 坐标(0,0)在画布的左上角// // 1) 绘制线// // 开始绘制// pen.beginPath();// // 设置描边颜色// pen.strokeStyle = "red";// // 设置线的宽度// pen.lineWidth = 5// // 设置线的样式// // pen.lineCap = ""// // 设置起点// // pen.moveTo(x,y)// pen.moveTo(100,200);// // 设置下一个点(终点)// pen.lineTo(500,200);// // 结束绘制// pen.closePath();// // 描边// pen.stroke();// // 2) 绘制三角形// // 开始绘制// pen.beginPath();// // 设置描边颜色// pen.strokeStyle = "red";// // 填充颜色// pen.fillStyle="yellow"// // 设置线的宽度// pen.lineWidth = 5// // 设置线的样式// // pen.lineCap = ""// // 设置起点// // pen.moveTo(x,y)// pen.moveTo(100,200);// // 设置下一个点// pen.lineTo(500,200);// // 设置下一个点(终点)// pen.lineTo(300,400);// // 结束绘制// pen.closePath();// // 描边// pen.stroke();// // 填充// pen.fill();// // 4) 绘制矩形 (第一种写法)// // 开始绘制// pen.beginPath();// // 设置描边颜色// pen.strokeStyle = "red";// // 填充颜色// pen.fillStyle = "yellow"// // 设置线的宽度// pen.lineWidth = 5// // 设置线的样式// // pen.lineCap = ""// // 设置起点// // pen.moveTo(x,y)// pen.moveTo(100, 200);// // 设置下一个点// pen.lineTo(500, 200);// // 设置下一个点// pen.lineTo(500, 400);// // 设置下一个点(终点)// pen.lineTo(100, 400);// // 结束绘制// pen.closePath();// // 描边// pen.stroke();// // 填充// pen.fill();// // 4) 绘制矩形 (第二种写法)// // 开始绘制// pen.beginPath();// // 设置描边颜色// pen.strokeStyle = "red";// // 填充颜色// pen.fillStyle = "yellow"// // 设置线的宽度// pen.lineWidth = 5// // 设置线的样式// // pen.lineCap = ""// // 设置距离的坐标和尺寸// // pen.rect(x, y, w,h);// pen.rect(100, 200, 400,200);// // 结束绘制// pen.closePath();// // 描边// pen.stroke();// // 填充// pen.fill();// // 4) 绘制矩形 (第三种写法)// // 开始绘制// pen.beginPath();// // 设置描边颜色// pen.strokeStyle = "red";// // 填充颜色// pen.fillStyle = "yellow"// // 设置线的宽度// pen.lineWidth = 5// // 设置线的样式// // pen.lineCap = ""// // 设置距离的坐标和尺寸// // pen.rect(x, y, w,h);// pen.fillRect(100, 200, 400, 200);// pen.strokeRect(100, 200, 400, 200);// // 结束绘制// pen.closePath();// 5) 绘制弧形、圆形// 一个圆形 360 °// 涉及弧度的计算(公式)// 弧度 = 角度 * Math.PI / 180 pen.beginPath();// 设置描边颜色pen.strokeStyle = "red";// 填充颜色pen.fillStyle = "yellow";// 定义对象记录坐标,半径var point = {x: 100,y: 200,r: 100,// 半径}// 设置圆心坐标pen.moveTo(point.x, point.y);// 绘制一个圆形pen.arc(point.x, //  x坐标point.y, // y坐标point.r,  // 半径180 * Math.PI / 180, // 开始弧度360 * Math.PI / 180,// 结束弧度true // false 顺时针,否则反之)// 结束绘制pen.closePath();// 描边pen.stroke();// 填充pen.fill();// 6) 绘制文本pen.beginPath();// 填充颜色pen.fillStyle = "red";// 设置字体pen.font = "20px  微软雅黑";// 设置文本水平位置pen.textAlign="center";// 设置垂直文本位置pen.textBaseline = "bottom";// 填充文本pen.fillText("休息一哈!",point.x,point.y);pen.closePath();</script>
</body></html>

2)绘制组合图案(一个爱心)

<!DOCTYPE html>
<html lang="zh-cn"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>基本模板</title><link rel="stylesheet" href="./bootstrap/css/bootstrap.min.css">
</head><body><canvas id="canvas" class="bg-success"></canvas><script>// 获取canvas对象var canvas = document.getElementById("canvas");// 设置画布尺寸canvas.width = 600;canvas.height = 800;// 获取绘制图形图像的对象 (画笔)var pen = canvas.getContext("2d");// console.log(pen);// 绘制矩形var drawRect = function (x, y, w, h, color) {pen.beginPath();pen.fillStyle = color || "red";pen.fillRect(x, y, w, h);pen.closePath();}// 绘制圆形var drawCircle = function (x, y, r, s, e, color) {pen.beginPath();pen.fillStyle = color || "red";// pen.strokeStyle= color || "red";pen.arc(x,y,r,s * Math.PI / 180,e * Math.PI / 180,true)pen.closePath();pen.fill();// pen.stroke();}// 定义对象记录坐标尺寸var point = {x: 100,y: 200,w: 100,h: 100,r: 50}// 先绘制矩形drawRect(point.x,point.y,point.w,point.h)// 在绘制圆形状drawCircle(point.x + 50,point.y,point.r,0,360)drawCircle(point.x,point.y + 50,point.r,0,360)// 判断绘制的角度是为顺时针// pen.beginPath();// pen.strokeStyle= "red";// pen.arc(//     400,//     400,//     100,//     0 * Math.PI / 180,//     90 * Math.PI / 180,//     false // false 顺时针 , true 是逆时针// )// pen.stroke();</script>
</body></html>

3)做一幅动图

<!DOCTYPE html>
<html lang="zh-cn"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>基本模板</title><link rel="stylesheet" href="./bootstrap/css/bootstrap.min.css">
</head><body><canvas id="canvas"></canvas><!-- <img src="./assets/2.jpg" alt=""> --><script>// 获取画布标签var canvas = document.querySelector("#canvas");//  创建图片var img = new Image();//  请求图片资源img.src = "./assets/2.jpg";//  设置画布尺寸canvas.width = 800;canvas.height = 600;// 获取canvas上下对象(画笔)var ctx = canvas.getContext("2d");// console.log(ctx);// 记录每一帧动画的坐标和尺寸var arr = [{ sx: 30,  sy: 5, sw: 192, sh: 270, x: 100, y: 100, w: 192, h: 270 },{ sx: 210, sy: 5, sw: 192, sh: 270, x: 100, y: 100, w: 192, h: 270 },{ sx: 380, sy: 5, sw: 192, sh: 270, x: 100, y: 100, w: 192, h: 270 },{ sx: 568, sy: 5, sw: 192, sh: 270, x: 100, y: 100, w: 192, h: 270 },{ sx: 10, sy: 340, sw: 200, sh: 270, x: 100, y: 100, w: 192, h: 270 },{ sx: 216, sy: 340, sw: 200, sh: 270, x: 100, y: 100, w: 192, h: 270 },{ sx: 410, sy: 340, sw: 200, sh: 270, x: 100, y: 100, w: 192, h: 270 },{ sx: 590, sy: 340, sw: 200, sh: 270, x: 100, y: 100, w: 192, h: 270 }]// 记录数组的索引var index = 7;// 绘制图像img.onload = function () {// 绘制图片// ctx.drawImage(//     img,// 图片资源//     0,// 在画布的x坐标//     0,// 在画布的y坐标//     img.width * (1/2),// 在画布的尺寸//     img.height* (1/2)// 在画布的尺寸// )// 绘制图片部分的效果(裁剪图片绘制在画布上)// ctx.drawImage(//     img,// 图片资源//     0, // 在图片的x坐标//     0, // 在图片的y坐标//     192, // 裁剪图片的宽度//     260,// 裁剪图片的高度//     0,// 在画布的x坐标//     0,// 在画布的y坐标//     192,// 在画布的尺寸//     260// 在画布的尺寸// )// 把裁剪的坐标尺寸和画布的坐标尺寸做成变量ctx.drawImage(img,// 图片资源arr[index].sx, // 在图片的x坐标arr[index].sy, // 在图片的y坐标arr[index].sw, // 裁剪图片的宽度arr[index].sh, // 裁剪图片的高度arr[index].x,  // 在画布的x坐标arr[index].y,  // 在画布的y坐标arr[index].w,  // 在画布的尺寸arr[index].h   // 在画布的尺寸)}// 使用定时器var timer = setInterval(function(){index ++;index = index > arr.length-1 ? 0: index;// 先清除画布ctx.clearRect(0,0,canvas.width,canvas.height)// 再绘制图片ctx.drawImage(img,// 图片资源arr[index].sx, // 在图片的x坐标arr[index].sy, // 在图片的y坐标arr[index].sw, // 裁剪图片的宽度arr[index].sh, // 裁剪图片的高度arr[index].x,  // 在画布的x坐标arr[index].y,  // 在画布的y坐标arr[index].w,  // 在画布的尺寸arr[index].h   // 在画布的尺寸)}, 1000 / 12);// 一秒钟执行12次</script></body></html>

三、svg与canvas的区别

1、canvas时h5提供的新的绘图方法

svg已经有了十多年的历史

2、vanvas画图基于像素点,是位图,如果进行放大或缩小会失真

svg基于图形,用html标签描绘形状,放大缩小不会失真

3、canvas需要在js中绘制

svg在html正绘制

4、canvas支持颜色较svg多

5、canvas无法对已经绘制的图像进行修改、操作

svg可以获取到标签进行操作

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

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

相关文章

Kubernetes kafka系列 | k8s部署kafka+zookeepe集群(可外部通信)

直通车 zookeeper搭建 请参考yaml kafka.yaml --- apiVersion: v1 kind: Service metadata:name: kafka-hslabels:app: kafka spec:ports:- port: 9092targetPort: 9092name: serverclusterIP: Noneselector:app: kafka --- apiVersion: v1 kind: Service metadata:name: ka…

(一)、机器人时间同步方案分析

1、是否有必要进行时间同步 目前的自动驾驶系统包括 感知、定位、决策规划、控制 等模块&#xff0c;这些模块的正常运行需要依靠各种不同类型的传感器数据的准确 融合。尤其是激光雷达与相机这两种传感器在感、知定位模块中起着至关重要的作用。机械式旋转扫描激光雷达本身较低…

web canvas系列——快速入门上手绘制二维空间点、线、面

文章目录 ⭐前言⭐基本用法&#x1f496;设置一个 canvas 2D 上下文&#x1f496;绘制矩形常用方法属性&#x1f496;绘制一个红蓝交替的矩形 &#x1f496;绘制路径常用方法属性&#x1f496;画一个点&#x1f496;画一条线&#x1f496;画一个三角形面&#x1f496;画一个笑脸…

Map集合遍历键找值方式

1.4 Map集合遍历键找值方式 键找值方式&#xff1a;即通过元素中的键&#xff0c;获取键所对应的值 分析步骤&#xff1a; 获取Map中所有的键&#xff0c;由于键是唯一的&#xff0c;所以返回一个Set集合存储所有的键。方法提示:keyset()遍历键的Set集合&#xff0c;得到每一…

【leetcode热题】 两数之和 II - 输入有序数组

给你一个下标从 1 开始的整数数组 numbers &#xff0c;该数组已按 非递减顺序排列 &#xff0c;请你从数组中找出满足相加之和等于目标数 target 的两个数。如果设这两个数分别是 numbers[index1] 和 numbers[index2] &#xff0c;则 1 < index1 < index2 < numbers…

Rust 程序设计语言学习——所有权

这一节主要来学习 Rust 语言的其他特性&#xff0c;所有权、引用与借用、Slice 类型。 1 所有权 Rust 的核心功能&#xff08;之一&#xff09;是所有权&#xff08;ownership&#xff09;。虽然该功能很容易解释&#xff0c;但它对语言的其他部分有着深刻的影响。 所有程序…

Jenkins: 搭建Jenkins服务,调通Webhook链路

实现 jenkins docker 自动化发布 1 &#xff09;jenkins 下载 地址&#xff1a;https://www.jenkins.io/download/选择合适的版本&#xff0c;比如 mac 上 $ brew install jenkins-lts建议使用 docker 搭建&#xff0c;下面用 mac上整体流程演示 2 &#xff09;jenkins 管理…

代码分支管理

代码分支管理规范 一、分支管理要求 分支管理 • 将代码提交到适当的分支,遵循分支管理策略。 • 随时可以切换到线上稳定版本代码,确保可以快速回滚到稳定版本。 • 同时进行多个版本的开发工作,确保分支清晰,避免混淆。提交记录的可读性 • 提交描述准确,具有可检索性,…

Explain 关键字

优质博文&#xff1a;IT-BLOG-CN explain关键字可以模拟优化器执行 SQL 查询语句&#xff0c;从而知道 MySQL 是如何处理 SQL 语句的。分析查询语句或表结构的性能瓶颈。执行语句&#xff1a;explain SQL语句。表头信息如下&#xff1a; 一、ID 参数 select 查询的序列号&…

MySQL实现事务隔离的秘诀之锁

在MySQL中&#xff0c;有多种锁类型&#xff0c;我们先了解三种概念的锁&#xff0c;以便对接下来的内容有更好理解。 表级锁&#xff08;Table Lock&#xff09;&#xff1a;对整个表加锁&#xff0c;其他事务无法修改或读取该表的数据&#xff0c;但可以对其他表进行操作。页…

【数据结构和算法初阶(C语言)】二叉树铺垫--栈帧的创建与销毁--细节全解

前言&#xff1a; 学习这么久以来&#xff0c;可能有很多疑问&#xff1a;局部变量怎么创建的&#xff1f;为什么局部变量的值是随机的&#xff1f;函数是怎么传参的&#xff1f;传参的顺序是怎么样的&#xff1f;形参和实参是什么样的关系&#xff1f;函数调用是怎么做的&…

由浅到深认识C语言(11):结构体

该文章Github地址&#xff1a;https://github.com/AntonyCheng/c-notes 在此介绍一下作者开源的SpringBoot项目初始化模板&#xff08;Github仓库地址&#xff1a;https://github.com/AntonyCheng/spring-boot-init-template & CSDN文章地址&#xff1a;https://blog.csdn…

【全开源】JAVA情侣扭蛋机情侣游戏系统源码支持微信小程序+微信公众号+H5

一、功能介绍 会员功能、情侣扭蛋 收到的券、送出的券 合伙代理、意见反馈 我们技术使用JAVA后台服务 前后端分离 springbootmybatisplusmysql 用户端 uniapp&#xff08;vue语法&#xff09;管理后台 vueelementUi 适配小程序H5公众号&#xff0c;一套源码&#xff0c;无…

Jenkins 面试题及答案整理,最新面试题

Jenkins中如何实现持续集成与持续部署&#xff1f; Jenkins通过自动化构建、测试和部署应用程序来实现持续集成与持续部署&#xff08;CI/CD&#xff09;。这个过程包括以下步骤&#xff1a; 1、源代码管理&#xff1a; Jenkins支持与多种版本控制系统集成&#xff0c;如Git、…

设计模式在芯片验证中的应用——装饰器

一、装饰器模式 装饰器模式(Decorator)是一种结构化软件设计模式&#xff0c;它提供了一种通过向类对象添加行为来修改类对象的方法&#xff0c;而不会影响同一类的其它对象行为。该模式允许在不修改抽象类的情况下添加类功能。它从本质上允许基类代码对不可预见的修改具有前瞻…

SQLiteC/C++接口详细介绍之sqlite3类(十二)

返回目录&#xff1a;SQLite—免费开源数据库系列文章目录 上一篇&#xff1a;SQLiteC/C接口详细介绍之sqlite3类&#xff08;十一&#xff09; 下一篇&#xff1a;SQLiteC/C接口详细介绍之sqlite3类&#xff08;十三&#xff09; ​37.sqlite3_load_extension 用于在SQLit…

硅电容的工作原理,结构特点,工艺流程,选型参数及设计注意事项总结

🏡《总目录》 目录 1,概述2,工作原理3,结构特点3.1,集成度高3.2,制造工艺成熟3.3,稳定性好3.4,高可靠性4,工艺流程4.1,材料准备4.2,硅片处理4.3,电容结构制作4.4,电极制作4.5,封装与测试<

Iframe 嵌入: 页面嵌入并保持自适应页面的宽高并铺满整个屏幕

文章目录 问题分析1. 嵌入 Iframe2. 样式3. 源码 问题 当我们使用 Iframe 嵌入页面后&#xff0c;会看到它只在小小的一部分进行展示&#xff0c;如何让它铺满整个屏幕 分析 1. 嵌入 Iframe <template><div><iframe :src"embeddedPageUrl" width…

R语言中的常用基础绘图函数 直方图,箱线图,条形图,散点图

目录 R语言中的绘图参数 绘图函数 1.plot函数绘制散点图 2.hist函数绘制直方图 如何修饰直方图? 如何在直方图上标注各组频数&#xff1f; 使用text函数把某些信息标注在直方图上 如何在直方图上添加概率密度曲线&#xff1f; 3.boxplot函数绘制箱线图 4.barplot函数…

【强化学习笔记一】初识强化学习(定义、应用、分类、性能指标、小车上山案例及代码)

文章目录 第1章 初识强化学习1.1 强化学习及其关键元素1.2 强化学习的应用1.3 强化学习的分类1.3.1 按任务分类1.3.2 按算法分类 1.4 强化学习算法的性能指标1.5 案例&#xff1a;基于Gym库的智能体/环境接口1.5.1 安装Gym库1.5.2 使用Gym库1.5.3 小车上山1.5.3.1 有限动作空间…