fabric.js的使用

安装:npm install fabric --save

// 使用fabric实现:
import { fabric } from 'fabric'initFabric () {// create a wrapper around native canvas element (with id="canvasEl")let canvas = new fabric.Canvas('canvasEl')// create a rectangle objectlet rect = new fabric.Rect({left: 100,top: 100,fill: 'red',width: 20,height: 20,// angle:45,})// "add" rectangle onto canvascanvas.add(rect)// 改变rect的属性,然后重新渲染rect.set({ left: 50, top: 50 })canvas.renderAll()let circle = new fabric.Circle({radius: 20,fill: 'green',left: 100,top: 100,})let triangle = new fabric.Triangle({width: 20,height: 30,fill: 'blue',left: 150,top: 50,})canvas.add(circle, triangle)// 禁止框选(多选)canvas.selection = false // disable group selection// 禁止单个选择// circle.set('selectable', false); // make object unselectable// Pathlet path = new fabric.Path('M 0 0 L 200 100 L 170 200 z')// path.set({ left: 120, top: 120 });path.set({ fill: 'red', stroke: 'green', strokeWidth: 5, opacity: 0.5 })// canvas.add(path);// 旋转角度,有动画效果!rect.animate('angle', 45, {onChange: canvas.renderAll.bind(canvas),duration: 4000,easing: fabric.util.ease.easeOutBounce})
},

在这里插入图片描述

// canvas自己实现这些:
initCanvas () {let canvasEl = document.getElementById('canvasContainer')// 获取上下文:get 2d context to draw on (the "bitmap" mentioned earlier)let ctx = canvasEl.getContext('2d')// set fill color of contextctx.fillStyle = 'red'ctx.translate(100, 100) // 位移到指定位置ctx.rotate(Math.PI / 180 * 45)  // 旋转角度// create rectangle at a 100,100 point, with 20x20 dimensions// ctx.fillRect(100,100,20,20)ctx.fillRect(-10, -10, 20, 20)
},

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

如何使用前端包管理器(如npm、Yarn)?

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

云安全之信息内容安全

内容安全产生背景 随着互联网、智能设备及各种新生业务的飞速发展,互联网上的数据呈现爆炸式增长,图片、视频、发文、聊天等互动内容已经成为人们表达感情、记录事件和日常工作不可或缺的部分。每天,通过互联网上传的视频、图片数量超过10亿…

kafka生产者发送消息报错 Bootstrap broker localhost:9092 (id: -1 rack: null) disconnected

报这个错误是因为kafka里的配置要修改下 在config目录下 server.properties配置文件 这下发送消息就不会一直等待,就可以发送成功了

凉鞋的 Unity 笔记 108. 第二个通识:增删改查

在这一篇,我们来学习此教程的第二个通识,即:增删改查。 增删改查我们不只是一次接触到了。 在最先接触的场景层次窗口中,我们是对 GameObject 进行增删改查。 在 Project 文件窗口中,我们是对文件&文件夹进行增删…

Linux 用户层、内核层和MMU

一、Linux 用户层、内核层 在 Linux 中,所有设备都以文件的形式存放在/dev 目录下,都是通过文件的方式进行访问,设备节点是Linux 内核对设备的抽象,一个设备节点就是一个文件。应用程序通过一组标准化的调用执行访问设备&#xff…

Python爬虫爬取某会计师协会网站的指定文章(文末送书)

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

敏捷开发中,Sprint回顾会的目的

Sprint回顾会的主要目的是促进Scrum团队的学习和持续改进。在每个Sprint结束后,团队聚集在一起进行回顾,以达到以下目标: 识别问题: 回顾会允许团队识别在Sprint(迭代)期间遇到的问题、挑战和障碍。这有助于…

【JWT】快速了解什么是jwt及如何使用jwt

一、导言 1、什么是jwt及组成部分 JWT(JSON Web Token)是一种用于在网络应用间安全传递声明(claim)的开放标准。它由三部分组成:头部(Header)、载荷(Payload)和签名&…

来啦来啦!关于CoT提示策略综述

深度学习自然语言处理 原创作者:wkk 思维链(CoT)是一个循序渐进、连贯的推理链,通常被用作大型语言模型(LLM)的提示策略并体现出了巨大的优势。近年来,基于CoT提示的展示出的效果吸引了众多的研…

3d tiles规范boundingVolume属性学习

3d tiles的瓦片(Tiles)包含一些属性,其中第一项是boundingVolume;下面学习boundingVolume; boundingVolume,这个翻译为边界范围框,如果直译为边界体积可能有问题,其实就是包围盒的意…

【工具软件】mediamtx——网页、vue3项目中播放 rtsp 视频流(支持265转码)

声明 本文只做 mediamtx 的使用实操,请务必参考下面的博客,,我也参考下面的大佬博客,感谢唯一602的无私分享: 在web页面中直接播放rtsp视频流,重点推荐:mediamtx,不仅仅是rtsp mediamtx 介绍 …

从一部iPhone手机看芯片的分类

目录 问题 iPhone X 手机处理器:A11 iPhone X 的两大存储芯片 数字 IC CPU:计算设备的运算核心和控制核心 GPU:图形处理器 ASIC:为解决特定应用问题而定制设计的集成电路 存储芯片:DRAM 和 NAND Flash iPhone…