Javrvis算法计算凸包的周长
来源:互联网 发布:香港买mac口红多少钱 编辑:程序博客网 时间:2024/05/17 07:22
//Javrvis算法计算凸包的周长//#include "stdafx.h"#include<iostream>#include<algorithm>#include<cmath>#define size 1010using namespace std;struct point {int x;int y;};point spot[size];int n, cnt, tail;int tubao[size], start[size];bool cmp(point a, point b) {return (a.y < b.y || a.y == b.y && a.x < b.x);}//判断是否严格左转,共线不算左转bool CrossLeft(point p1, point p2, point p3) {return ((p3.x - p1.x) * (p2.y - p1.y) - (p2.x - p1.x) * (p3.y - p1.y)) < 0;}void Jarvis() {tail = cnt = 0;sort(spot, spot + n, cmp);start[tail++] = 0, start[tail++] = 1;for (int i = 2; i < n; i++) {while (tail > 1 && !CrossLeft(spot[start[tail - 1]], spot[start[tail - 2]], spot[i]))tail--;start[tail++] = i;}for (int i = 0; i < tail; i++) tubao[cnt++] = start[i];tail = 0; start[tail++] = n - 1; start[tail++] = n - 2;for (int i = n - 3; i >= 0; i--) {while (tail > 1 && !CrossLeft(spot[start[tail - 1]], spot[start[tail - 2]], spot[i]))tail--;start[tail++] = i;}for (int i = 0; i < tail; i++) tubao[cnt++] = start[i];}int main(){//输入n个点cin >> n ;for (int i = 0; i < n; i++)cin >> spot[i].x >> spot[i].y;//调用凸包的Javrvis算法Jarvis();//tubao[]为求得的凸包中的点double length = 0;///计算凸包的周长for (int i = 0; i < cnt - 1; i++)length += sqrt(pow((spot[tubao[i]].x - spot[tubao[i + 1]].x),2) + pow((spot[tubao[i]].y - spot[tubao[i + 1]].y),2) * 1.0);cout << length << endl;return 0;}
阅读全文
0 0
- Javrvis算法计算凸包的周长
- Graham算法(计算凸包周长)
- 凸包算法,并求凸包的周长
- POJ1113 凸包周长计算
- poj1113 求凸包+计算凸包周长
- UVA 11096 || Nails (计算凸包周长
- 【codevs1298】凸包周长,计算几何
- poj1113Wall(凸包周长计算)
- Light OJ 1239 计算凸包周长
- CodeVS1298 凸包周长 解题报告【计算几何】【凸包】
- hdu 1348(凸包的周长+圆的周长)
- POJ--1113[Wall] 凸包周长+圆的周长
- POJ1113 计算几何--整形凸包模板周长
- 计算圆的周长
- HDU 1348 Wall 凸包的周长
- POJ 1392(凸包的周长)
- HDU1392 凸包问题求周长 + 裸 + Graham算法
- 计算凸包算法
- 计算机顶级会议Rankings && 英文投稿的一点经验
- pat 1129. Recommendation System (25)(set的增删)
- 站长友联,网站推广的,有网站的进来看看了!!
- 如何搜索某个学科领域的文献综述?
- UVA 524
- Javrvis算法计算凸包的周长
- 反编译
- 解决MySQL登录ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using passwor)问题
- 分布式服务的事务如何处理
- 闪银奇异安全负责人:互金行业安全建设的四个心得
- mac mysql数据库安装
- ServletContext-14
- 170906_学习测试(二)_Apache JMeter 入门一
- ctf常见php弱类型分析