首页
学习
活动
专区
工具
TVP
发布

前端西瓜哥的前端文章

专栏成员
141
文章
99222
阅读量
26
订阅数
浏览器没有鼠标连击事件,那我们自己造
如果当前处于没有选中图形的状态,对于最顶层的组,对它们的直接子图形数组从上往下遍历,找出命中 hitTest 的图形,将其设置为选中状态。
前端西瓜哥
2024-06-27
640
Figma 的编组功能,比你想象的要复杂得多
最近做个人的开源编辑器项目,实现了和 Figma 一样的编组功能,期间踩了不少坑,和大家分享一下。
前端西瓜哥
2024-06-17
630
在两条直线相交处添加圆角,算法该如何实现?
然后基于圆心作两条直线的垂足得到两个点,这两个点就是圆弧起点和终点,然后确定方向就可以了。
前端西瓜哥
2024-06-17
730
你知道吗?圆弧有3种表达方式
所以我们在原来圆形的圆心、半径参数的基础上,加上极坐标弧度表示的起点和终点,就能表达一段圆弧。
前端西瓜哥
2024-06-03
840
简简单单实现画笔工具,轻松绘制丝滑曲线
首先是监听按下鼠标,我们记录好此时鼠标的位置,作为路径的起点,并记录此时是 “拖拽状态”。
前端西瓜哥
2024-06-03
910
平面几何:判断点是否在多边形内(射线法)
之前我们讲解了如何利用叉乘 判断点是否在凸多边形内。但该算法限制较大,多边形必须为凸多变形。
前端西瓜哥
2024-05-22
1470
图形编辑器开发:网格与网格吸附
考虑到性能,我们 只绘制视口范围内的网格线。其他超出的部分不同绘制出来。因为是重复图案(可以视作两条线组成的 L 形的平铺),可以考虑用纹理平铺渲染以提高性能。
前端西瓜哥
2024-05-15
1470
平面几何:判断点是否在凸多边形内
在之前的 求两向量的夹角的文章 中我提到过,对于两个向量,我们可以利用叉积的符合右手定则,判断两个向量的位置关系。
前端西瓜哥
2024-05-15
780
图形编辑器开发:基于 transfrom 对多个图形进行缩放
上篇文章我们讲解如何基于 transform 缩放但个矩形,实现了 resizeRect 方法。
前端西瓜哥
2024-05-07
940
图形编辑器开发:基于 transfrom 的图形缩放
上一篇文章我们讲了为什么以及如何用 transform、width 和 height 表达图形。
前端西瓜哥
2024-04-28
1250
图形编辑器开发:为什么我选择用 transform 矩阵表达图形的变形?
改用 transform 表达图形的变形,并废弃掉了原来的 rotation、x、y 属性。
前端西瓜哥
2024-04-28
1070
图形编辑器开发:钢笔工具的实现
像是 SVG 的 Path 的元素,单段的线有直线、圆弧、椭圆弧、二阶贝塞尔曲线、三阶段贝塞尔曲线等。
前端西瓜哥
2024-04-19
720
关于包围盒,你需要知道的那些事
实际上包围形状的图形某些情况下会使用多边形(凸包、凹包)或是圆形或是其他,不仅限于矩形的更泛用的叫法应该是 “包围体”(bounding volume)。
前端西瓜哥
2024-04-03
1760
个人开源图形编辑器 Suika 的 2024 年二季度开发计划
一开始功能很简陋,但我一有时间就往上面加功能,不断思考写代码要怎么写才能更优雅,更容易维护,不断地推敲一些算法和交互,一行行用代码实现和重构,最终变成了这么一个 相对来说功能较为丰富的图形编辑器 了。
前端西瓜哥
2024-04-03
1040
CRDT 协同编辑:如何确定操作时序?
CRDT 协同编辑中,我们经常会使用 Last-Writer-Win 的策略解决冲突。即对于多个冲突的操作,哪个操作是最后修改的,就应用哪个操作。
前端西瓜哥
2024-04-03
1100
平面几何:求内接或外切于圆的正多边形
思路是,让起点基于圆心旋转 PI * 2 / count 度数的倍数,执行 count - 1 次,拿到所有的点。
前端西瓜哥
2024-04-03
960
平面几何:求向量 a 到向量 b扫过的夹角
今天我们来学习如何求向量 a 到向量 b扫过的弧度,或者也可以说是角度,转换一下就好了。
前端西瓜哥
2024-03-22
1090
CRDT 协同编辑:修改树的节点层级 Mutable Tree Hierarchy
本文来讲讲一个 CRDT 协同算法:修改树节点层级的操作后,保持多人协作时的数据最终一致,且不会出现环。
前端西瓜哥
2024-03-12
1400
平面几何算法:求点到直线和圆的最近点
比如精细的图形拾取(尤其是一些没有填充只有描边的图形)。如果光标点到最近点的距离小于某个阈值,计算图形就算被选中。
前端西瓜哥
2024-03-04
1820
Figma 的画布缩放功能说明
画布缩放是图形编辑器的基础功能,作用是放大图形编辑细节,缩小总览全局。我们来看看 Figma 是如何做画布缩放设计的。
前端西瓜哥
2024-02-23
1.1K0
点击加载更多
社区活动
AI代码助手快速上手训练营
鹅厂大牛带你玩转AI智能结对编程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档