当路径的文件名需要拼接变量的时候,可使用require()引入。
// 控制台打出当前仓库的所有标签 git tag
// 打标签,tag 自定义标识 版本id -m "备注" git tag v1.00 440376 -m "2020第一版"
| 查看版本id git rev-parse HEAD ,查看段版本id git rev-parse --short HEAD
// 将v1.00标签提交到git服务器 git push origin v1.00
// 将本地所有标签一次性提交到git服务器 git push origin --tags
// 切换标签 git checkout tagname
// 当前目录全部代码切换到v1.00时的代码 // git checkout v1.00
// 删除标签 git tag -d v1.00
// 删除git服务器上的标签 git push origin :v1.00
canvas 默认300 X 150
canvas的width和height跟style中定义的width和height是不同的,canvas标签的width和height是画布实际宽度和高度, 绘制的图形都是在这个上面。style的width和height是canvas在浏览器中被渲染的高度和宽度。
使用CSS设置画布的大小会导致画布按比例缩放你设置的值(CSS设置的宽高和300 * 150 的比值)
例如,用CSS设置canvas 的宽高为450300,对应默认的画布大小300 * 150 ,宽高比分别为 1.5和2 ,所以画布中100100的图片会显示为宽1001.5 150px, 高1002 200px。
改变canvas 的默认大小
// 方法一
<canvas width="100px" height="100px"></canvas>
// 方法二,通过js的方法实现
canvas.width="100"
canvas.height="100"
两个概念:
- js是同步加载的
- 浏览器执行js程序,高于页面的渲染
于是就出现了js更新DOM,页面不能及时渲染的问题。
例如:
document.body.html('helloworld')
// 程序
$.ajax({
...
})
// 运行结果会在ajax执行完毕后,再去渲染页面
assets中的图片在项目编译中会被webpack处理解析为模块依赖,支持相对路径形式,
在script 中引入图片
// 必须require进来 或者 引入网络地址
data() {
return {
img: require('../assets/1.jpg'),
img2: 'https://baidu.com/jpg/2.jpg'
}
}
将问题一般化,在M * N 的方格里有 M * N - 1 个不同元素和一个空元素,只有空元素可以和上下左右相邻的元素交换位置。 M * N 方格中M * N - 1个元素和一个空元素的位置确定一个图形。
拼图游戏的问题是:一个图形经过一连串的交换能否得到另一个图形,如何得到?
从交换方式的可逆性看出这种关系满足等价三性质(等价矩阵),如果图形A通过交换变成图形B,则称它们是等价的。
**定理1:**图形A和图形B等价的充分必要条件是图形A的排列的逆序数加上0元素行号和列号的奇偶性等于图形B的排列的 逆序数加上0元素行号和列号的奇偶性。为了方便 表述,把图形排列的逆序数加上0元素行号和列号的奇偶性称为图形的奇偶性。
例如:图形A 展开的排列1 3 2 6 0 5 4 7 8, 它的逆序数为8,0元素行号为2,列号为2。逆序数加行号,列号的奇偶性为偶。图B 展开的排列1 2 3 4 5 6 7 8 0,它的逆序数为8,0元素行号为3,列号为3。逆序数加行号,列号的奇偶性为偶,两个图形的奇偶性相同,根据定理1,判断它们等价。
由此,得出要计算两个排列的奇偶性,只有两个排列的奇偶性相同的情况下,才可以恢复图像。
- 重新开始后,右下角空白未清空
预计:加入本地图片选择。本地图片裁剪。