Fabric.js|Fabric.js 自由绘制圆形
本文简介
这次要讲的是 自由绘制圆形 。
在 《Fabric.js 自由绘制矩形》 里讲到的思路,放在圆形里不太适用。
这次要做到的效果如下图所示。
文章图片
思路
Fabric.js
默认的框选操作是矩形,如果需要做到上图的效果,需要做以下3步:
- 点击画布时
canvas.on('mouse:down', fn)
,创建一个圆形。 - 鼠标移动时
canvas.on('mouse:move', fn)
,圆形的大小跟随鼠标所在的位置进行缩放。 - 松开鼠标时
canvas.on('mouse:up', fn)
,确定圆形大小。
交互操作方面,我按照
PhotoShop
椭圆工具的操作逻辑。圆形的直径是矩形的短边。
文章图片
【Fabric.js|Fabric.js 自由绘制圆形】
如果 “移动鼠标的坐标点” 在 点击时的坐标点 左侧或者上方,需要将圆形的左上角移到 “移动鼠标的坐标点” 。
动手实现 我在这里贴出用 原生方式 实现的代码和注释。
如果你想知道在
Vue3
环境下如何实现 Fabric.js 自由绘制矩形
,可以在 代码仓库 里查找。
代码仓库
- ?原生版本的代码
- ?Vue3版本的代码
推荐阅读
- 《Fabric.js 自由绘制矩形》
- 《Fabric.js 自定义右键菜单》
- 《Fabric.js 从入门到膨胀》
推荐阅读
- Fabric.js|Fabric.js 自由绘制椭圆
- Fabric.js|Fabric.js 缩放画布
- Fabric.js|Fabric.js 橡皮擦的用法(包含恢复功能)
- Fabric.js|Fabric.js 元素被选中时保持原有层级
- Fabric.js|Fabric.js 手动加粗文本iText
- Fabric.js|Fabric.js 上划线、中划线(删除线)、下划线
- Fabric.js|Fabric.js 控制元素层级
- Fabric.js|Fabric.js IText 手动设置斜体
- Fabric.js|Fabric.js 动态设置字号大小
- Fabric.js|Fabric.js 将本地图像上传到画布背景