凸包, 圆角矩阵凸包, 点的旋转,任意多边形外角和为360度, 绕着某点进行旋转

添加链接描述

给定你一些 圆角矩阵, 其每一个角 都是一个 半径为radius的圆的 1/4 圆弧

在这里插入图片描述

每个矩形 中心即对角线中心 坐标是{x, y},
然后会有一个角度angle, 表示: 该矩阵 需要以该矩阵的中心(x,y) 旋转angle角度

每一个矩阵都相同, 只是位置 和 旋转角度 不同.

问: 将这些矩阵 围起来的 凸包周长.

分


首先, 如果说 r == 0 即这些都是 直角矩阵, 你将每个矩阵的4个端点, 即一共4 * n个端点, 进行一次凸包算法, 就便是答案.


看圆角矩阵时, 这个凸包 有哪些性质.

在这里插入图片描述
这个凸包, 肯定是由: (直边) 和 (圆弧 <= 90度) 组成.

在这里插入图片描述

  • 1, 将这个圆弧, 从端点处 延长, 即蓝色线, 他们会相交于某一点.
  • 2, 此时, 你延长后, 圆心到 圆弧两个端点的垂线, 和 两个延长线, 组成的 四边形;
    根据圆的切线定理, 可以得到: 圆弧角度 = 蓝色延长角的外角

用所有的蓝色延长线, 替代 所有的 圆弧, 你就会 将这个凸包 变成一个 多边形.

任意多边形的 外角和 = 360度, 故, 可知: 所有圆弧的角度 = 360;

凸包中, 所有的圆弧 恰好构成 一整个圆


然后, 处理 凸包中 所有的 (非圆弧边), 即直边

在这里插入图片描述
将AB边, 顺着直角边 平移下来, 到两个圆心交汇处;

可以发现, 他构成一个矩形; 凸包上的 直边(黑色) == 两个圆心的 连线(绿色)


凸包 = (直边) + (圆弧)

所有直边 = 将所有圆心 求一下凸包算法

所有圆弧 = 圆的周长


绕一点旋转

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值