手机
当前位置:查字典教程网 >编程开发 >Java >使用JAVA判断凸多边形的示例代码
使用JAVA判断凸多边形的示例代码
摘要:复制代码代码如下:以HDU2108为例,去AC吧。//点逆序输入importjava.util.Scanner;//1spublicclas...

复制代码 代码如下:

以HDU2108为例,去AC吧。

//点逆序输入

import java.util.Scanner;

//1s

public class HDU2108 {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

while(true) {

int x,y;

int n = sc.nextInt();

if(0==n) {

break;

}

Point[] p = new Point[n];

for(int i=0; i<n; i++) {

p[i] = new Point();

}

for(int i=0; i<n; i++) {

x = sc.nextInt();

y = sc.nextInt();

p[i] = new Point(x,y);

}

//凸多边形

boolean tag = true;

int j,k,t;

for(int i=0; i<n; i++) {

//k,t直接对n求余就行了

j = i;

k = i+1;

t = i+2;

//以三角形为例看看

if(k==n) {

k = 0;

}

if(t==n+1) {

t = 1;

}

if(t==n) {

t = 0;

}

//注意是后面减去前面的

Point p1 = new Point(p[k].x - p[j].x,

p[k].y - p[j].y);

Point p2 = new Point(p[t].x - p[k].x,

p[t].y - p[k].y);

//叉积

int ans = p1.x*p2.y - p1.y*p2.x;

if(ans<0) {

tag = false;

break;

}

}

if(tag) {

System.out.println("convex");

}else {

System.out.println("concave");

}

}

}

}

class Point {

int x;

int y;

public Point() {

this.x = 0;

this.y = 0;

}

public Point(int x, int y) {

this.x = x;

this.y = y;

}

}

【使用JAVA判断凸多边形的示例代码】相关文章:

Java批量修改文件名的实例代码

Java生成PDF文件的实例代码

java使用数组和链表实现队列示例

用C和JAVA分别创建链表的实例

java中通用的线程池实例代码

Java通过接口实现匿名类的实例代码

java 使用线程做的一个简单的ATM存取款实例代码

删除JAVA集合中元素的实现代码

Java字符判断的小例子

java 删除数组元素与删除重复数组元素的代码

精品推荐
分类导航