| 多边形-1 | ||||||
| ||||||
| Description | ||||||
|
任意给定一个多边形,判断它是凸还是凹。多边形的顶点以逆时针方向的序列来表示。
| ||||||
| Input | ||||||
|
输入包含多组测试数据,每组数据占两部分。第一行是一个整数n,表示多边形顶点的个数,接下来n(3<=n<=1000)行每行两个整数,表示逆时针顺序的n个顶点的坐标(xi,yi)(-1000<=xi,yi<=1000)。 n为0的时候结束输入。 | ||||||
| Output | ||||||
|
对于每组测试样例,如果多边形的形状为凸多边形,请输出“Convex”,否则输出”Concave”,每组样例的输出占一行。 | ||||||
| Sample Input | ||||||
|
4 | ||||||
| Sample Output | ||||||
|
Convex
对于有公共端点的线段p0p1和p1p2,通过计算(p2 - p0) × (p1 - p0)的符号便可以确定折线段的拐向:
若(p2 - p0) × (p1 - p0) > 0,则p0p1在p1点拐向右侧后得到p1p2。
若(p2 - p0) × (p1 - p0) < 0,则p0p1在p1点拐向左侧后得到p1p2。
若(p2 - p0) × (p1 - p0) = 0,则p0、p1、p2三点共线。
然后跑一边所有点就行了。。
|
Hust oj 1642 多边形-1(叉乘)
最新推荐文章于 2023-02-13 23:15:27 发布
本文介绍了一种算法,用于判断给定顶点序列的多边形是凸多边形还是凹多边形。该算法通过计算连续三个顶点构成的向量之间的叉乘来确定多边形的拐向。


&spm=1001.2101.3001.5002&articleId=52437068&d=1&t=3&u=3c84adef90c0496fb75b2bc66c03f245)
885

被折叠的 条评论
为什么被折叠?



