多边形面 并集 运算思路(想法)
来源:互联网 发布:1991年nba总决赛数据 编辑:程序博客网 时间:2024/06/08 09:17
输入:多边形面1---多变形面N 的所有角点
输入:并集
输出:布尔运算后的多边形面的面 或者 合并后的多段线
(性能:差)
非精确合并思路1:基于三角形 合成 bool二维栅格代表图形
1. 多边形拆分成三角形
2. 三角形的边线的填充(Vertex A B C), 可以使用bres线填充算法
边AB, BC, CA
3. 基于得到的边像素,每一行从AB,BC,CA中会得出一个yRadius,<left,rigth>; Left-Right 平行线填充
4. 基于多变形的总范围大小,形成矩阵栅格 bool boolArray[X][Y],把所有三角形填入到矩阵栅格
5. 矩阵栅格中所有为true的栅格绘制出来,就是多变形面并的结果
(性能:优)
非精确合并思路2:基于三角形 合成 基于行的映射map<yRadius, lsit< struct<left,right>>>
1. 多边形拆分成三角形
2. 三角形的边线的填充(Vertex A B C), 可以使用bres线填充算法
边AB, BC, CA
3. 基于得到的边像素,每一行从AB,BC,CA中会得出一个yRadius,<left,rigth>; yRadius相同的行,放在同一张延left排序链表lsit< struct<left,right>>中,并进行重叠合并。
struct<left,right>与另一struct<left,right>的关系有几种,基于这几种情况进行重叠合并,从而得出不重叠的lsit< struct<left,right>>
a. 位于另一线左侧
b. 位于另一线右侧
c. 和另一线左侧相交(相邻也归为相交)
d. 和另一线右侧相交(相邻也归为相交)
e. 位于另一线内部
f. 包含另一线
4. map中所有<yRadius, list<struct<left,right>>>栅格绘制出来,就是多变形面并的结果
精确合并思路1:分区二叉树布尔运算合并
- 多边形面 并集 运算思路(想法)
- 并查集想法
- 对并查集的一点点想法..
- 多边形面的绘制
- android开发思路、一些想法
- 关于多边形的布尔运算
- 带权并查集思路
- 矩阵内寻找多边形面
- HDU 2480 Steal the Treasure 并查集+想法
- 并查集的粗劣想法(易懂)
- hdu 4786 Fibonacci Tree (并查集+想法题)
- 51nod 1821 最优集合(想法+贪心+并查集)
- 任意多边形裁剪圆的实现思路
- 多边形重心问题 NYOJ 3 思路+代码
- <想法>C++容易将设计思路引入歧途
- 定位想法,等待以后整理思路。
- PJSIP 添加视频的思路和想法
- 学习Android的一些思路和想法
- 复制构造函数(拷贝构造函数)
- 2012中国互联网公司、全球互联网公司最新市值排名(2012.12.06)
- LCA 最近公共祖先 tarjan离线 总结 结合3个例题
- LCA的Tarjan算法
- ftp xferlog日志说明
- 多边形面 并集 运算思路(想法)
- GUI系统之SurfaceFlinger(1)OpenGLES与EGL
- 键盘小游戏
- 面试题5:从尾到头打印链表
- solaris管理命令svcadm(服务状态管理,启动、停止等)
- 为了流量,你敢不敢冒风险!
- 两个LINUX之间使用SCP传文件
- (黑马程序员)数组转集合要点总结
- 安装VIM中文帮助文档