社区
数据结构与算法
帖子详情
求任意位置的一个点是否在任意封闭图形之内的算法
school
2002-05-12 06:15:27
同上
...全文
66
6
打赏
收藏
求任意位置的一个点是否在任意封闭图形之内的算法
同上
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zzwu
2002-05-14
打赏
举报
回复
应基于图形文件数据,而用不到在窗口中去实际画出。你可把图形文件一次读入到内存中,然后接下来的就完全是在内存中操作了。
自然,在调试程序时,可以把您的封闭图形画在窗口中,但这时您用不到搞很大的图形来调试程序,而可用能够在窗口中放下的就可以了。小图形照样可以复杂。
当然,对于实际问题,同时把图形显示出来也是需要的,大的图形可以缩小后再显示,但显示归显示,操作是在内存中进行的,且求交过程并不是图像操作,无需在内存中开辟一个图像缓冲区。一根线只要存储它的两个端点就可以了。
zzwu
2002-05-14
打赏
举报
回复
应基于图形文件数据,而用不到在窗口中去实际画出。你可把图形文件一次读入到内存中,然后接下来的就完全是在内存中操作了。
自然,在调试程序时,可以把您的封闭图形画在窗口中,但这时您用不到搞很大的图形来调试程序,而可用能够在窗口中放下的就可以了。小图形照样可以复杂。
当然,对于实际问题,同时把图形显示出来也是需要的,大的图形可以缩小后再显示,但显示归显示,操作是在内存中进行的,且求交过程并不是图像操作,无需在内存中开辟一个图像缓冲区。一根线只要存储它的两个端点就可以了。
school
2002-05-14
打赏
举报
回复
你们讲的关于与边相交的奇偶问题,我也考虑过,只是射线的延伸是基于窗口客户区,还是基于图形文件数据。如基于窗口客户区,其大小有限,无法显示完整的图形时,射线的延伸要如何突破窗口客户区的局限。如基于图形文件数据,则需将点映射到相应的图形文件中,这样可能将造成对图形文件的频繁读写,效率大大下降......
zzwu
2002-05-13
打赏
举报
回复
我有真代码,但因为是我80年代初做的工作,是用fortran编的。
基本思想是从你指定的点作任意方向的直线(充分长),求出直线与图形边界的交点数n,如n是奇数,就在图形内,n是偶数,就在图形外。
麻烦的是要考虑特殊情况。
你可以参考《计算机图形学》的书自己动手编,作为基本功,练一练。
FROM
2002-05-13
打赏
举报
回复
这个是计算机图形学上的问题,参考其中的扫描线填充算法。不过用代码实现起来是有点复杂的。
one_add_one
2002-05-12
打赏
举报
回复
以点P为端点,向左方作射线L,由于多边形是有界的,所以射线L的左端一定在多边形外,考虑沿着L从无穷远处开始自左向右移动,遇到和多边形的第一个交点的时候,进入到了多边形的内部,遇到第二个交点的时候,离开了多边形,……所以很容易看出当L和多边形的交点数目C是奇数的时候,P在多边形内,是偶数的话P在多边形外。如图2(a),(b)所示。
但是有些特殊情况要加以考虑,如图2(c) (d) (e) (f)所示。在图2的(c) 中,L和多边形的顶点相交,这时候交点只能计算一个;在图2 (d) 中,L和多边形顶点的交点不应被计算;在图2 (e) 和 (f) 中,L和多边形的一条边重合,这条边应该被忽略不计。为了统一起见,我们在计算射线L和多边形的交点的时候,1。对于多边形的水平边不作考虑;2。对于多边形的顶点和L相交的情况,如果该顶点是其所属的边上纵坐标较大的顶点,则计数,否则忽略;3。对于P在多边形边上的情形,直接可判断P属于多边行。由此得出算法的伪代码如下:
count = 0;
以P为端点,作从右向左的射线L;
for ( 多边形的每条边side ) {
if ( P 在边 side 上 ) return true;
if ( side 是水平的 ) continue;
if ( side 的一个端点在L上且该端点是side两端点中纵坐标较大的端点 ) {
count++;
} else if ( side 和 L 相交 ) {
count++;
}
}
return ( count % 2 == 1 );
其中判断点是否在线段上的算法和判断线段是否相交的算法前文已讨论过,该算法的复杂度为O(n)。
http://www.csdn.net/expert/topic/615/615044.xml?temp=.9301721
计算机
图形
学填充
算法
的实验
计算机
图形
学种子填充
算法
的实验 压缩包直接在打开工作区间上运行 VC++6.0
论文研究-一种适用于
任意
形状区域的快速孔洞填充
算法
.pdf
提出了一种对
任意
形状物体都适用的基于区域外接矩形的孔洞填充
算法
,与传统的区域填充
算法
相比较,该
算法
填充速度快、实用性强,因而可应用于
图形
及图像处理的诸多领域。
java判断百度地图的点
是否
在多边形区域内
java判断百度地图的点
是否
在多边形区域内,这是完整的demo
《
图形
学简明教程》第3章-基本光栅
图形
算法
.ppt
《
图形
学简明教程》第3章-基本光栅
图形
算法
.ppt
计算机
图形
学之渲染
算法
:Radiosity:计算机
图形
学中的辐射度优化技术.docx
计算机
图形
学之渲染
算法
:Radiosity:计算机
图形
学中的辐射度优化技术.docx
数据结构与算法
33,027
社区成员
35,336
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章