当前位置: 首页 > article >正文

canvas扩展001:利用fabric绘制图形,可以平移,旋转,放缩

canvas实例应用100+ 专栏提供canvas的基础知识,高级动画,相关应用扩展等信息。
canvas作为html的一部分,是图像图标地图可视化的一个重要的基础,学好了canvas,在其他的一些应用上将会起到非常重要的帮助。

文章目录

    • 示例效果图
    • 示例源代码(共72行)
    • 安装插件
    • 相关API
    • canvas基本属性
    • canvas基础方法

canvas可以使用Fabric.js来做扩展,您可以在画布上创建和填充对象; 诸如简单几何形状之类的对象 - 矩形、圆形、椭圆形、多边形或由数百或数千条简单路径组成的更复杂的形状。 然后,您可以使用鼠标缩放、移动和旋转这些对象; 修改它们的属性 - 颜色、透明度、z-index 等。您还可以完全操作这些对象 - 通过简单的鼠标选择将它们分组。

示例效果图

在这里插入图片描述

示例源代码(共72行)


/*
* @Author: 大剑师兰特(xiaozhuanlan),还是大剑师兰特(CSDN)
* @此源代码版权归大剑师兰特所有,可供学习或商业项目中借鉴,未经授权,不得重复地发表到博客、论坛,问答,git等公共空间或网站中。
* @Email: 2909222303@qq.com
* @weixin: gis-dajianshi
* @First published in CSDN
* @First published time: 2023-11-24
*/
<template>
	<div class="container">
		<div class="top">
			<h3>利用fabric绘制图形,可以平移,旋转,放缩</h3>
			<div>大剑师兰特, 还是大剑师兰特,gis-dajianshi</div>
		</div>
		<div class="dajianshi ">
             <canvas id="canvas" width="600" height="300"></canvas>
		</div>

	</div>
</template>
<script>
	import {
		fabric
	} from "fabric";
	export default {
		data() {
			return {
			}
		},
		mounted() {
			this.getdata()
		},
		methods: {
			getdata() {
				var canvas = new fabric.Canvas('canvas');
				var rect = new fabric.Rect({
					top: 100,
					left: 100,
					width: 60,
					height: 70,
					fill: 'red'
				});

				canvas.add(rect);
			},
		}
	}
</script>

<style scoped>
	.container {
		width: 1000px;
		height: 580px;
		margin: 50px auto;
		border: 1px solid green;
		position: relative;
	}

	.top {
		margin: 0 auto 0px;
		padding: 10px 0;
		background: lightcoral;
		color: #fff;
	}

	.dajianshi {
		margin: 100px auto 0;
		width: 600px;
		height: 300px;
		background: #059;
	}
</style>


安装插件

npm install fabric --save

相关API

https://www.npmjs.com/package/fabric

canvas基本属性

属性属性属性
canvasfillStylefilter
fontglobalAlphaglobalCompositeOperation
heightlineCaplineDashOffset
lineJoinlineWidthmiterLimit
shadowBlurshadowColorshadowOffsetX
shadowOffsetYstrokeStyletextAlign
textBaselinewidth

canvas基础方法

方法方法方法
arc()arcTo()addColorStop()
beginPath()bezierCurveTo()clearRect()
clip()close()closePath()
createImageData()createLinearGradient()createPattern()
createRadialGradient()drawFocusIfNeeded()drawImage()
ellipse()fill()fillRect()
fillText()getImageData()getLineDash()
isPointInPath()isPointInStroke()lineTo()
measureText()moveTo()putImageData()
quadraticCurveTo()rect()restore()
rotate()save()scale()
setLineDash()setTransform()stroke()
strokeRect()strokeText()transform()
translate()

http://www.kler.cn/a/145255.html

相关文章:

  • 【深度分析】DeepSeek 遭暴力破解,攻击 IP 均来自美国,造成影响有多大?有哪些好的防御措施?
  • 大数据学习之Kafka消息队列、Spark分布式计算框架一
  • 信号处理以及队列
  • 16、智能驾驶域控的材料回收
  • LeetCode热题100中 17. 20. 53. 78. 215.
  • 16届蓝桥杯寒假刷题营】第2期DAY5IOI赛
  • C语言基础介绍
  • flink源码分析之功能组件(二)-kubeclient
  • TPLink-Wr702N 通过OpenWrt系统打造打印服务器实现无线打印
  • Pure-Pursuit 跟踪五次多项式轨迹
  • mysql1124实验七索引管理
  • xilinx FPGA multi boot之镜像切换
  • github timeout 问题解决 与访问加速
  • 从代码执行,看单片机内存的分配
  • Java中static、final、static final的区别
  • 第三节-Android10.0 Binder通信原理(三)-ServiceManager篇
  • MidJourney笔记(3)-Prompts
  • Linux加强篇005-用户身份与文件权限
  • 【ARM 嵌入式 编译系列 2.3 -- GCC 中指定 ARMv8-M 的 Thumb 指令集参数详细介绍】
  • 【cppcheck 静态代码分析工具使用教程】
  • 100元预算,轻松涨粉1000!腾讯运营面试秘籍大揭秘!
  • 美国汽车零部件巨头 AutoZone 遭遇网络攻击
  • Blender学习--模型贴图傻瓜级教程
  • C# 忽略大小写
  • C++ vector迭代器失效
  • libbz2 for Mac OS makefile