Lab1

Lab1_p2
它这个就刚学的凸包要现学现用,其他的难点我觉得都是题目问题(题目是英文的有点难理解)。
需要注意的点
根据角度确定多边形时要用math.round函数可以直接把一个数字舍入为最接近的整数,要是直接取整,可能会遇到舍入问题(如:6.999999999舍入到6)
计算偏转角度时要注意atan2()函数,需要查一下atan2()的详细说明。
最后就是凸包问题了,我的做法就是首先新建一个点的数组,把set中的点全都提取出来,然后用冒泡找到最左下的点,在计算其他点关于这个点的角度,按从小到大排序重新排列数组…简而言之就是Graham扫描法,https://www.cnblogs.com/wuwangchuxin0924/p/6223152.html这个博客写的还挺好,基本就是按这个方法写的
新学到的就是关于类的遍历方法,比如
for (Point s:points)
{
temp1[i]=s;
i++;
}
比较坑的就是要注意审题,会有1,2个点的输入,要加特判
还有用atan2判断两个向量的相对位置时,用要注意第一个向量在1,2象限,而第二个向量在第3,4象限的情况。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值