多边形运算与几何处理函数实现

23、仅使用 complement() 和 intersection() 函数,为以下自由函数模板提供替代实现:template inline bool join (const Polygon_2 & pgn1 , const Polygon_2 & pgn2 ); template inline bool difference(const Polygon_2 & pgn1 , const Polygon_2 & pgn2 ); template inline bool symmetric_difference(const Polygon_2 & pgn1 , const Polygon_2 & pgn2 ); template inline bool oriented_side (const Polygon_2 & pgn1, const Polygon_2 & pgn2 ); 并比较包中提供的函数模板实现与你自己实现的性能。

需要根据布尔集合运算规则进行函数的替代实现,并通过编写性能测试代码来比较性能。

- `join` 可表示为对两个多边形补集取交集后再取补集;
- `difference` 可表示为第一个多边形与第二个多边形补集取交集;
- `symmetric_difference` 可表示为 (pgn1 与 pgn2 补集的交集) 并上 (pgn2 与 pgn1 补集的交集);
- `oriented_side` 较复杂,可能需根据点与多边形的位置关系结合补集和交集运算实现。

性能比较则需使用计时工具对两种实现进行测试。

24、开发一个名为 connect_holes_hor() 的函数模板,它具有如下返回类型和参数类型:template Output_iterator connect_holes_hor (const Polygon_with_holes_2 & pwh, Output_iterator oi ); 这个函数应该连接输入的带洞多边形对象的洞。结果,它应该计算一个跨越输入带洞多边形的外边界和内边界的点序列。它需要计算每个洞的最左

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值