验证以检查我的三角形的坐标是否是java中的有效输入,这意味着正确构造了三角形

时间:2015-01-15 04:29:49

标签: java swing validation

我将坐标作为输入,如下所示:

System.out.print("Enter the three X coordinates for Triangle (x1cord,x2cord,x3cord) :");
int x1cord = input.nextInt();
int x2cord = input.nextInt();
int x3cord = input.nextInt();
int x[] = {x1cord,x2cord,x3cord};

System.out.print("Enter the three Y coordinates for Triangle (y1cord,y2cord,y3cord) :");
int y1cord = input.nextInt();
int y2cord = input.nextInt();
int y3cord = input.nextInt();
int y[] = {y1cord,y2cord,y3cord};

shape = FillComponent.drawTriangle(x, y);

使用以下方法构建三角形:

Shape triangle = new Polygon(x[], y[], 3);

我想检查用户是否输入了有效坐标。 ----需要帮助。

2 个答案:

答案 0 :(得分:4)

如果三个点不在一条直线上,则坐标形成一个有效三角形(任意两边的长度之和必须超过剩余边的长度)。

因此,使用坐标变量,这里是三角形验证逻辑(使用java.awt.Point):

Point vertex1 = new Point(x1cord, y1cord);
Point vertex2 = new Point(x2cord, y2cord);
Point vertex3 = new Point(x3cord, y3cord);

double side1 = Math.abs(vertex1.distance(vertex2));
double side2 = Math.abs(vertex2.distance(vertex3));
double side3 = Math.abs(vertex3.distance(vertex1));

boolean valid = side1 + side2 > side3
             && side2 + side3 > side1
             && side3 + side1 > side2;

if (!valid) {
    System.out.println("The entered coordinates do not form a triangle");
}

答案 1 :(得分:0)

如果您使用的是Swing,可以按如下方式编写代码

你将从

获得价值
String cordinate_1=text_field1.getText();

并使用以下方法检查用户输入是否为整数

public static boolean isNumeric(String str)  
{  
 try  
    {  
     double d = Double.parseDouble(str);  
     }  
   catch(NumberFormatException nfe)  
  {  
   return false;  
   }  
return true;  
 }