手机
当前位置:查字典教程网 >编程开发 >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实现KMP算法理论和示例代码

Java线程优先级示例代码

Spring实现文件上传(示例代码)

java裁剪图片并保存的示例分享

冒泡排序算法原理及JAVA实现代码

JAVA中 终止线程的方法介绍

Java生成随机数的2种示例方法代码

JAVA计算两个日期相差的实例

简单的用java实现读/写文本文件的示例

java调用Oracle存储过程的方法实例

精品推荐
分类导航