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

前端西瓜哥的前端文章

专栏成员
148
文章
110475
阅读量
26
订阅数
贝塞尔曲线算法:求 t 在三阶贝塞尔曲线上的点、切向量、法向量
我们有 p1(锚点 1)、cp1(控制点 1)、cp2(控制点 2)、p2(锚点 2) 表示的一条三阶贝塞尔曲线,给定曲线参数 t,求其对应的点位置,以及这个点的切向量和法向量。
前端西瓜哥
2024-07-31
1010
平面几何:求直线线段的轮廓线
求线段的法向量,乘以线宽的一半,得到位移向量。然后让线段的两个点分别做两个方向的位移,得到多边形的 4 个顶点,将它们按照一定顺序连接起来得到多边形,这个多边形就是我们要求的轮廓多边形。
前端西瓜哥
2024-07-31
740
LeetCode 几何算法题解:223-矩形面积
一年多没做 LeetCode 算法题了,最近在 LeetCode 发现可以筛选出有 “几何” 标签的算法题,有个几十道题。
前端西瓜哥
2024-07-22
890
图形编辑器开发:实现选中图形的水平翻转和垂直翻转
选中图形如果是单个,我们 选择图形的 OBB (带朝向的包围盒)的中点位置作为翻转中心。
前端西瓜哥
2024-07-12
880
Figma,你都复制了些什么东西?
我以前其实有想过解析复制的数据,只是没太大动机,后面也忘了。既然有人问,那我就顺手解析一下吧。
前端西瓜哥
2024-07-12
990
吸附设计:学会正确地贴贴
本文将介绍图形编辑器中吸附系统中,各种吸附类型的吸附逻辑和算法实现,让大家对吸附有一个概念。
前端西瓜哥
2024-07-12
820
个人开源图形编辑器 Suika 2024 年三季度计划
目前界面又进化了一点。star 数也多了一点,三个月来从原来的 249,涨了 160,现在是 409。
前端西瓜哥
2024-07-12
740
浏览器没有鼠标连击事件,那我们自己造
如果当前处于没有选中图形的状态,对于最顶层的组,对它们的直接子图形数组从上往下遍历,找出命中 hitTest 的图形,将其设置为选中状态。
前端西瓜哥
2024-06-27
890
Figma 的编组功能,比你想象的要复杂得多
最近做个人的开源编辑器项目,实现了和 Figma 一样的编组功能,期间踩了不少坑,和大家分享一下。
前端西瓜哥
2024-06-17
1680
在两条直线相交处添加圆角,算法该如何实现?
然后基于圆心作两条直线的垂足得到两个点,这两个点就是圆弧起点和终点,然后确定方向就可以了。
前端西瓜哥
2024-06-17
1010
你知道吗?圆弧有3种表达方式
所以我们在原来圆形的圆心、半径参数的基础上,加上极坐标弧度表示的起点和终点,就能表达一段圆弧。
前端西瓜哥
2024-06-03
1560
简简单单实现画笔工具,轻松绘制丝滑曲线
首先是监听按下鼠标,我们记录好此时鼠标的位置,作为路径的起点,并记录此时是 “拖拽状态”。
前端西瓜哥
2024-06-03
1190
平面几何:判断点是否在多边形内(射线法)
之前我们讲解了如何利用叉乘 判断点是否在凸多边形内。但该算法限制较大,多边形必须为凸多变形。
前端西瓜哥
2024-05-22
2540
图形编辑器开发:网格与网格吸附
考虑到性能,我们 只绘制视口范围内的网格线。其他超出的部分不同绘制出来。因为是重复图案(可以视作两条线组成的 L 形的平铺),可以考虑用纹理平铺渲染以提高性能。
前端西瓜哥
2024-05-15
1710
平面几何:判断点是否在凸多边形内
在之前的 求两向量的夹角的文章 中我提到过,对于两个向量,我们可以利用叉积的符合右手定则,判断两个向量的位置关系。
前端西瓜哥
2024-05-15
1380
图形编辑器开发:基于 transfrom 对多个图形进行缩放
上篇文章我们讲解如何基于 transform 缩放但个矩形,实现了 resizeRect 方法。
前端西瓜哥
2024-05-07
1150
图形编辑器开发:基于 transfrom 的图形缩放
上一篇文章我们讲了为什么以及如何用 transform、width 和 height 表达图形。
前端西瓜哥
2024-04-28
1570
图形编辑器开发:为什么我选择用 transform 矩阵表达图形的变形?
改用 transform 表达图形的变形,并废弃掉了原来的 rotation、x、y 属性。
前端西瓜哥
2024-04-28
1340
图形编辑器开发:钢笔工具的实现
像是 SVG 的 Path 的元素,单段的线有直线、圆弧、椭圆弧、二阶贝塞尔曲线、三阶段贝塞尔曲线等。
前端西瓜哥
2024-04-19
1020
关于包围盒,你需要知道的那些事
实际上包围形状的图形某些情况下会使用多边形(凸包、凹包)或是圆形或是其他,不仅限于矩形的更泛用的叫法应该是 “包围体”(bounding volume)。
前端西瓜哥
2024-04-03
2870
点击加载更多
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档