不规则图形 尖角转圆角

用于视线效果,不可见区域的阴影美化,将尖锐的阴影边缘柔和成圆角。
pre
cur
1. 取3个点A,B,C
2. 计算得到射线向量BA, BC
3. 射线BA, BC分别从B点沿射线方向,取若干距离的点作为垂线坐标点
4. 分别以垂点做垂线,并计算垂线的斜率
5. 已知一点与斜率,分别得出二者垂线的方程并计算两条垂线的交点。将交点设为圆心,半径是圆心到垂点的距离。
6. 确定了圆心之后,两个垂点之间的短弧,即是圆角。
7. 判断垂线的角度,取点移动的方向是逆时针。假如A点为逆时针的起始点,则从BA的向量角度递增至BC,逐间隔计算圆上的点
8. 根据圆心,半径,角度,逆时针逐间隔计算圆上的点
9. 将得到的点连接,即为圆角点。

void convertToCircle(std::vector<Vec2>& pointList)
{
    std::vector<Vec2> vecNewPoint;
    std::vector<Vec2>::iterator itrPt;
    std::vector<Vec2>::iterator itrPtPre;
    std::
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值