




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
程序设计艺术与方法 课程实验报告 实验名称实验三 计算几何算法的实现 姓 名系院专业班 级学 号 实验日期6 5指导教师徐本柱成 绩 一 实验目的和要求一 实验目的和要求 1 理解线段的性质 叉积和有向面积 2 掌握寻找凸包的算法 3 综合运用计算几何和搜索中的知识求解有关问题 二 实验预习内容二 实验预习内容 1 掌握线段的性质以及叉积和有向面积的计算方法 2 预习寻找凸包的算法 三 实验项目摘要三 实验项目摘要 1 将讲义第三章第三节中的凸包代码上机运行并检验结果 2 完成讲义第三章的课后习题 上机运行并检验结果 3 思考 判线段相交时 如果有个线段的端点在另一条线段上 注意可能与另一条线段上的端点重合 思 考这样的情况怎么办 4 房间最短路问题 给定一个内含阻碍墙的房间 求解出一条从起点到终点的最最短路径 房间的边界 固定在 x 0 x 10 y 0 和 y 10 起点和终点固定在 0 5 和 10 5 房间里还有 0 到 18 个 墙 每个墙有两个门 输入给定的墙的个数 每个墙的 x 位置和两个门的 y 坐标区间 输出最短路的长度 下图是个例子 4 实验结果与分析 源程序及相关说明 实验结果与分析 源程序及相关说明 思考 判线段相交时 如果有个线段的端点在另一条线段上 注意可能与另一条线段上的端点重合 思考这 样的情况怎么办 用跨立的方法 线段相交满足且只需满足如下两个条件就可以了 1 两条线段相互跨立 2 一条线段的一个端点在另一条线段上 如果两线段相交 则两线段必然相互跨立对方 若 p1p2 跨立 p3p4 则 p1 p3 p4 p3 p2 p3 p4 p3 0 当 p1 p3 p4 p3 0 时 说明 p1 p3 p4 共线 但是因为已经通过了快速排斥实验 所以点 p1 一定在线段 p3 p4 上 所以判断线段 p1p2 p3p4 相交的依据是 p1 p3 p4 p3 p2 p3 p4 p3 0 include include using namespace std typedef pair POINT double direction POINT p POINT p1 POINT p2 POINT v1 v2 v1 first p2 first p first v1 second p2 second p second v2 first p1 first p first v2 second p1 second p second return v1 first v2 second v1 second v2 first bool on segment POINT p POINT p1 POINT p2 double min x p1 firstp2 first p1 first p2 first double min y p1 secondp2 second p1 second p2 second if p first min x else if d1 0 else if d2 0 else if d3 0 else if d4 0 else return false int main POINT p1 p2 p3 p4 cout 请输入四个点 p1 first p1 second p2 first p2 second p3 first p3 second p4 first p4 second segment intersect p1 p2 p3 p4 if true cout 线段有交点 endl else cout 线段无交点 endl 运行结果 最短路问题 include include include include using namespace std typedef pairPOINT double direction POINT p POINT p1 POINT p2 POINT v1 v2 v1 first p2 first p first v1 second p2 second p second v2 first p1 first p first v2 second p1 second p second return v1 first v2 second v1 second v2 first bool on segment POINT p POINT p1 POINT p2 double min x p1 firstp2 first p1 first p2 first double min y p1 secondp2 second p1 second p2 second if p first min x else return false POINT startPoint bool sortByPolorAngle const POINT if d0 return false if d 0 if d 0 return false void find convex hull vector int k 0 for int i 0 i point size i if point i second p0 second point i second p0 second k i point erase point begin k point insert point begin p0 vector convex hull do convex hull push back point 0 startPoint point 0 point erase point begin sort point begin point end sortByPolorAngle if point 0 convex hull 0 break point push back convex hull convex hull size 1 while 1 for int i 0 i convex hull size i cout convex hull i first convex hull i second endl int main vectorpv double x y i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 国家能源资阳市2025秋招面试专业追问及参考电气工程岗位
- 百色市中储粮2025秋招战略研究博士岗高频笔试题库含答案
- 2025年中达电子厂考试题及答案
- 昌都市中石油2025秋招笔试模拟题含答案炼油工艺技术岗
- 中国广电河池市2025秋招计算机类专业追问清单及参考回答
- 2025年春游美术考试题及答案
- 哈密市中石油2025秋招笔试模拟题含答案油品分析质检岗
- 中国联通阿里市2025秋招写作案例分析万能模板直接套用
- 2025年指南教师考试试题及答案
- 鹰潭市中石化2025秋招笔试模拟题含答案炼化装置操作岗
- 大数据的国内外研究现状及发展动态分析
- 医院定向委托培养合同10篇
- 青梅种植管理技术
- TBIE004-2023通孔回流焊接技术规范
- 部编版新教材语文二年级上册《6.去外婆家》教案设计
- 员工手册简单版本
- T-CACM 1275-2019 中医内科临床诊疗指南 硬皮病(系统性硬化症)
- 美术作品与客观世界 课件-2024-2025学年高中美术湘美版(2019)美术鉴赏
- 施工升降机维护保养协议8篇
- 腰椎管狭窄中医护理方案
- GB/T 17554.1-2025卡及身份识别安全设备测试方法第1部分:一般特性
评论
0/150
提交评论