社区
数据结构与算法
帖子详情
怎么判断一个线段是否可见?
idler
2002-01-11 10:34:50
在平面上给定一系列线段和一个观察点,如何判断从该点观察某线段是否可见?
只要没有被全部覆盖,这个线段即为可见。
...全文
404
7
打赏
收藏
怎么判断一个线段是否可见?
在平面上给定一系列线段和一个观察点,如何判断从该点观察某线段是否可见? 只要没有被全部覆盖,这个线段即为可见。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Soft21
2002-01-13
打赏
举报
回复
大家好啊,这里,Up!
mathe
2002-01-12
打赏
举报
回复
反正在多边形的情况,有一点是可以确定的,我们能够看到的线段肯定是一段连续的线段,而不会看到多段,所以只要将其它线段从和它相邻的线段开始一条条的计算出还没有被覆盖的部分(表示就很简单了),不过要注意一点要按照线段在多边形上的顺序来计算(不然中间结果会出现不连续的部分,那就比较麻烦了)
mathe
2002-01-12
打赏
举报
回复
这样好像将简单多了。
不过还要看观察点的位置是在多边形内部还是外部,还有多边形是否是凸多边形。
idler
2002-01-12
打赏
举报
回复
如果这些线段组成一个多边形呢?
mathe
2002-01-12
打赏
举报
回复
假设多边形的顶点依次为a1,..,an.观察点为O.
现在要判断a1an在O点能否看到。
初始化
s=0;e=1;代表线段 a1+t*(an-a1)在t=s时为a1,t=e时为an)
for(k=1;k<n;k++){
计算直线Oa[k]在直线a1an上的交点(其实可以使用上一次循环的结果)u
计算直线Oa[k+1]在直线a1an上的交点v
如果u同O在a[k]的同侧而且v同O在a[k+1]的同侧;continue;
如果一个同侧一个异侧比较麻烦,需要计算a[k]a[k+1]同a1an的交点(然后就同下面类似了,这里自己考虑一下吧)
同样将u和v表示为参数方程a1+t*(an-a1)中的形式。
由于是处理多边形,比然有u<=s或者v>=e
if(u<=s&&v>=e) 那么线段看不见;return;
if(u<=s)u=e;
else if(v>=e)v=s;
}
idler
2002-01-12
打赏
举报
回复
能不能给出一个具体的算法流程?
多谢!
mathe
2002-01-11
打赏
举报
回复
计算所有其他线段是否同目的线段所在直线相交,如果相交我们就将这些线段在交点处分为两条线段。
然后将所有这些线段上任取一点,如果它同观察点在目的直线分布在直线两边,则抛弃这条线,不然,就计算它在目的线段上投影的范围。就转化为一维问题了。
裁剪
线段
用编码法实现
线段
裁剪通常基于视口坐标系统,其中定义了
一个
可视区域(视口),
线段
只有与视口相交的部分才会被显示。经典的
线段
裁剪算法有Cohen-Sutherland算法和Liang-Barsky算法,它们都是基于边界框裁剪,即定义
一个
矩形的...
判断
线段
是否
被多边形遮挡PPT学习教案.pptx
《
判断
线段
是否
被多边形遮挡》的PPT学习教案为我们提供了
一个
关于如何通过算法
判断
线段
与多边形遮挡关系的深入视角,对消隐技术的两种主要算法类型进行了详细解读,为学习者提供了丰富的理论与实践知识。 首先,...
C#图形学-
线段
裁剪
线段
的端点分别被赋予这样的编码,然后通过逻辑运算来
判断
线段
是否
完全在视口内、完全在视窗外或部分在视口内。 算法步骤如下: 1. **编码端点**:对
线段
的两个端点进行编码。 2. **
判断
内外**:如果两个端点的...
编
一个
视窗变换软件及
线段
剪切程序
本项目旨在实现
一个
视窗变换软件,同时包含
线段
剪切功能,这无疑对于学习和理解这两个概念提供了实践平台。 视窗变换是将图形坐标系统(通常是
一个
无限的笛卡尔坐标系)映射到有限的屏幕显示区域(即窗口)的过程。...
线段
树六题
- **
线段
树维护不相交区间集合:** 在本题中,每张卡片代表
一个
区间,
线段
树用于维护这些区间,通过区间合并的方式
判断
不同的卡片颜色。 - **
线段
树的区间查询不同元素计数:**
线段
树可以用于快速查询给定区间内有...
数据结构与算法
33,028
社区成员
35,336
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章