不使用羊角曲线绘制G2圆角

发布于:2023-01-20 ⋅ 阅读:(10) ⋅ 点赞:(0) ⋅ 评论:(0)

知识补充

G0连续是点连续

G1连续是斜率连续

G2连续是曲率连续

用羊角螺线绘制G2圆角

首先绘制出一个羊角螺线

羊角螺线

羊角螺线无法绘制一个关于y=x对称的直角过渡,但可以绘制0°-45°的过渡。

所以可以取羊角曲线的x从0到斜率为1(此时切线为45°)的部分。

先做一条过原点的45°的直线

绘制过原点的45°直线

平移这条直线,找到他和羊角曲线的切点

找到切点

取出这部分羊角曲线

取出羊角曲线

对称后拼接

对称后拼接

这样就形成了一个曲率连续圆角

不使用羊角曲线绘制G2圆角

羊角曲线很完美,但是他是超越函数,实际它并不好绘制。

或许可以重新考虑一下G2曲线的本质,然后使用其他数学函数实现。

我们需要的图像,只需要满足函数2阶导连续,且曲线的切线能从0°过渡到45°。

学过高等数学,我们知道以下知识:

  1. 点连续说明函数连续

  2. 斜率连续说明一阶导连续

  3. 曲率连续说明二阶导连续

  4. n阶导连续,需要至少n+1次函数

综合以上,我们需要G2连续,则应该是一个三次函数。

考虑曲线 y=Cx³ 此曲线满足G2连续

设斜率为1时,x距离原点长度为s,可轻松解出s=(3C)^(-1/2)

反解C=(3s²)^(-1)

代入曲线公式 y=x³/(3s²)

对比羊角曲线

参考文章

iOS 7 的圆角图标是怎样一个图形? - 知乎 (zhihu.com)

利用羊角曲线画不规则圆角图标 - 知乎 (zhihu.com)

sddsd