首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

图形编辑器开发:实现缩放图形

通过属性面板输入框修改属性: 《图形编辑器:修改图形x、y、width、height、rotation》 width 和 height 为图形的宽高,这个没什么好说的。...《图形编辑器开发:属性显示与格式转换》 旋转度数通常要配合一个变换中心(origin),这个可以作为一个属性让用户设置。...一些编辑器是支持用户自己设置的,比如 AutoCAD 可通过图形单位命令,设置旋转方向和基准角度。 缩放实现思路 进入正题,对图形进行缩放。...结尾 本文实现了图形缩放的功能,希望对你有所帮助。 相关阅读, 计算机图形学:变换矩阵 图形编辑器开发:最基础但却复杂的选择工具 图形编辑器:历史记录设计 图形编辑器开发:模块间如何通信?...图形编辑器:工具管理和切换 图形编辑器:底层设计 图形编辑器:防误操作之拖拽阻塞

17120

图形编辑器开发:基于相交策略选中图形

我开发的图形编辑器,原本选中图形是基于选区是否完全包含对应图形来判断其是否被选中,使用的是矩形包含判断。...编辑器 github 地址: https://github.com/F-star/suika 线上体验: https://blog.fstars.wang/app/suika/ 但用着用着,我发现包含可能并不是一个好策略...我是前端西瓜哥,欢迎关注我,学习更图形编辑器知识。...---- 相关阅读, 几何算法:判断两条线段是否相交 图形编辑器开发:颜色 hex 标准化 图形编辑器开发:一些会用到的简单几何算法 几何算法:矩形碰撞和包含检测算法 在容器内显示图片的五种方案...:contain、cover、fill、none、scale-down 计算机图形学:变换矩阵 求向量的角度 图形编辑器开发:以光标为中心缩放画布 图形编辑器开发:参考线吸附效功能,让图形自动对齐

16230
您找到你想要的搜索结果了吗?
是的
没有找到

图形编辑器开发:绘制图形工具

今天来介绍如何实现图形绘制工具,实现绘制任意的图形。...编辑器 github 地址: https://github.com/F-star/suika 线上体验: https://blog.fstars.wang/app/suika/ 我之前讲过如何实现工具类管理类的...: 《图形编辑器:工具管理和切换》 对应的工具类的实现会围绕用户的 按下鼠标、拖拽、释放 这 3 个行为,图形绘制工具同样如此。...实现了这个图形绘制基类后,我们理论上就可以绘制任何图形了,甚至用户自定义的图形,只要这些图形对象使用 x、y、 width、height。 我是前端西瓜哥,欢迎关注我,学习更多图形编辑器知识。...相关阅读, 图形编辑器开发:最基础但却复杂的选择工具 图形编辑器:工具管理和切换 图形编辑器:底层设计 图形编辑器:对齐功能的实现 图形编辑器:历史记录设计 图形编辑器:防误操作之拖拽阻塞 图形编辑器

19420

图形编辑器开发:实现图形的复制粘贴

今天这篇文字来讲解一下图形编辑器如何实现图形的复制粘贴。 粘贴的范围 首先需要确认一下粘贴的范围。...这样就能巧妙地防止其他文本编辑器能够粘贴出内容,自己的编辑器却会在解析 html 结构时特意去读这个自定义属性拿到数据。...这个解析器也不只可以解析复制的图形内容,还可以用作普通的解析 html 对应生成文本图形对象。...相关阅读, 图形编辑器开发:模块间如何通信?...图形编辑器开发:绘制图形工具 图形编辑器开发:最基础但却复杂的选择工具 图形编辑器:工具管理和切换 图形编辑器:底层设计 图形编辑器:对齐功能的实现 图形编辑器:历史记录设计

29920

图形编辑器基于Paper.js教程02:图形图像编辑器概述

背景 由于笔者目前从事开发图形编辑器,在开始的那段时间里,调研和研究了非常多的图形编辑器,图像编辑器之类的软件,开源,闭源的,免费的,商业的都有。今天的这篇文章就来简单概述一下我调研的结果和过程。...图形或图像编辑器 其实图像和图形是有很大区别的, 图形更倾向于矢量图形,如svg的编辑。图像更倾向于位图,png,jpg图片的编辑。...图形编辑器常用于logo设计,矢量图形开发,svg开发 图像编辑器常用于图像处理,如证件照,在线海报制作 两者有联系,也有侧重点。...下面列一下开源的图像编辑器图形编辑器 开源的图形编辑器 https://github.com/SVG-Edit/svgedit https://github.com/excalidraw/excalidraw...做这种图像,图形编辑器,基本就是这几个库了。

12210

图形编辑器开发:模块间如何通信?

图形编辑器,随着功能的增加,通常都会愈发复杂,良好的架构是保证图形编辑器持续开发高效的重要技术。 根据功能拆分成一个一个的小模块基本是家常便饭。那么模块之间是如何配合以及进行数据传输的呢?...编辑器 github 地址: https://github.com/F-star/suika 线上体验: https://blog.fstars.wang/app/suika/ 注入 Editor 实例...editor.zoomManager.emitter.off('zoomChanged', handler); }; } }, []); } 结尾 本文简单介绍了图形编辑器架构中...我是前端西瓜哥,欢迎关注我,学习更多图形编辑器知识。...相关阅读, 图形编辑器:底层设计 图形编辑器:工具管理和切换 图形编辑器开发:绘制图形工具 图形编辑器开发:最基础但却复杂的选择工具 图形编辑器:对齐功能的实现 图形编辑器:历史记录设计

15220

图形编辑器开发:实现选中图形的水平翻转和垂直翻转

今天我们来实现一个比较少用到的功能:对选中图形做水平翻转和垂直翻转。 翻转实现分成这么 3 步: 计算选中图形的中心位置,作为翻转的翻转中心; 得到翻转矩阵; 给所有的图形应用翻转矩阵。...选中图形的中心 选中图形如果是单个,我们 选择图形的 OBB (带朝向的包围盒)的中点位置作为翻转中心。...选中图形如果是多个,就计算每个图形的 AABB 包围盒(包围图形的最小矩形),然后将它们合并成一个大包围盒,取这个大包围盒的中心作为翻转中心。...回到我们的对选中图形水平翻转。我们不是基于 y 轴做翻转,是对选中图形的中心做翻转。...结尾 我是前端西瓜哥,欢迎关注我,学习更多图形编辑器知识。

7510

图形编辑器开发:网格与网格吸附

今天我们来学习图形编辑器的网格模块要怎么设计和实现。...我正在开发的 suika 图形编辑器: https://github.com/F-star/suika 线上体验: https://blog.fstars.wang/app/suika/ 网格是什么?...网格通常渲染在图形的下方,并在画布缩放前后,维持线宽为 1 像素不变。 关于渲染实现,我之前写过 画布标尺的绘制的文章,思路其实是一样的。...这样有填充内容的图形不会覆盖和它重叠的网格,就能大概知道它占据了多少格子。 但这种情况下注意给网格线 设置滤镜效果或透明度,使在与其颜色相近的图形上方也能有一个较好的渲染效果,能够被分辨出来。...我是前端西瓜哥,欢迎关注我,学习更多图形编辑器知识。

15310

图形编辑器开发:缩放至适应画布

如果你不理解它们,请看我的这篇文章: 《图形编辑器开发:以光标为中心缩放画布》 总体思路: 计算包裹住所有图形的大包围盒 bbox(AABB 包围盒,不带旋转的); 计算新的缩放比 newZoom。...newViewportY = composedBBox.y - (viewport.height / newZoom - composedBBox.height) / 2; 这个算法可以看我写的文章: 《图形编辑器...同前面的让所有图形适应画布,bbox 换成选中的图形即可。...我是前端西瓜哥,欢迎关注我,学习开发一个图形设计工具。...相关阅读, 图形编辑器开发:以光标为中心缩放画布 图形编辑器:场景坐标、视口坐标以及它们之间的转换 图形编辑器开发:最基础但却复杂的选择工具 图形编辑器:工具管理和切换 图形编辑器:底层设计

24730

HTML5 canvas图形库RGraph

在新的HTML5标准中,新增了一个非常重要的元素—canvas元素。使用该元素,可以在页面中直接进行各种复杂图形的制作。...而且,因为用来控制canvas图形绘制的脚本代码是可以被压缩的,可以被缓存的,所以也就可以大幅度地减少带宽的占用了. RGraph是HTML5的JS图表库,拥有20多个类型的图表。...利用最新的HTML5 canvas标签,这个工具可在网页浏览器中生成JavaScript的图表,这意味着更快的网页加载和更少的Web服务器负载。...HTML5:使用RGraph绘制折线图(一) HTML5:使用RGraph绘制折线图(二) HTML5:使用RGraph绘制折线图(三) HTML5:使用RGraph绘制折线图(四) 品尝Android...(三)移动终端报表展示 MSTest or TRX to HTML with Animated Charts

1.6K80

图形编辑器开发:钢笔工具的实现

Path 编辑器 图形编辑器有很多子模块,比如快捷键、工具的管理。 这样我们就可以通过 delete 键删除图形,将当前工具切换为绘制矩形工具以绘制矩形。...比如 Esc 键,原来的效果是回到选择工具以及取消图形选中,现在要改写为取消 Path 控制点的选中状态,以及退出 Path 编辑器。 此外还有 Enter 键,注册为退出 Path 编辑器。...这里不多说,基本上和选择工具大同小异,可以看这篇文章: 《图形编辑器开发:最基础但却复杂的选择工具》 Path 编辑器的进入和退出 虽然但是,Path 的进入和退出的场景有很多种,你需要注意有没有漏掉一些...最后 钢笔工具(和 Path 选择工具)是复杂工具,属于图形编辑器的核心工具,它有非常多的功能需要实现,目前我只搭了个框架而已。...它的背后其实是一个 Path 编辑器,一套不同的另一套编辑器体系,会接管改写原来图形编辑器部分能力。 我是前端西瓜哥,欢迎关注我,学习更多图形编辑器知识。

8110

图形编辑器开发:加新的图形类型,触发丝滑小连招

在搭好图形编辑器的框架后,我们可能需要根据需求加入一些新的图形类型。 那么加入新的图形类型,需要做哪些工作呢?今天我们就来探究一下。...其他业务逻辑 此外就是新的图形类需要重写的各种其他逻辑。 这个就看图形编辑器支持的高级功能的多少了,比如 复制粘贴处理,需要处理关联的其他对象。...兼容旧版编辑器 如果是单机软件,会有版本兼容问题。 比如 2024 版新增的图形类型,在 2023 版是无法识别的,代码里就没有对应的处理逻辑。...因为用户每次打开网页,都是最新版的编辑器。此外,因为数据是保存在服务端的,甚至可以对已有图形类型进行破坏性修改,修复一些前期不合理的属性设计。...我是前端西瓜哥,欢迎关注我,学习更多图形编辑器知识。

12210
领券