?? parallelogram.java
字號:
/**
* @(#)Vector2D.java
*
*
* @author
* @version 1.00 2007/12/26
*/
import java.io.*;
class Vector2D {
public Vector2D()
{
}
public Vector2D(float a,float b) //初始化向量(或者點)
{
this.a=a;
this.b=b;
}
public Vector2D minus(Vector2D t) //兩個點相減得到向量
{
float x,y;
x=a-t.a;
y=b-t.b;
return new Vector2D(x,y);
}
public boolean nonzero() //片斷點非原點
{
return (a!=0||b!=0);
}
public float inner(Vector2D t) //若兩向量相平行則x1.y2-x2.y1=0
{
return a*t.b-b*t.a;
}
public boolean isParallelogram(Vector2D t)
{
return (nonzero() && t.nonzero() &&(Math.abs(inner(t))<delta));
}
public String toString()
{
return ("("+a+","+b+")");
}
private float a=0.0f,b=0.0f;
private float delta=0.00000001f;
}
public class Parallelogram
{
public static Vector2D getPoint(int i)throws IOException //初始化各個點,必須用static,否則無法被主函數調用
{
Vector2D temp;
float x,y;
BufferedReader keyin=new BufferedReader(new InputStreamReader(System.in));
System.out.print("x"+i+"=") ;
System.out.flush();
x=Float.parseFloat(keyin.readLine());
System.out.print("y"+i+"=") ;
System.out.flush();
y=Float.parseFloat(keyin.readLine());
temp=new Vector2D(x,y);
return temp;
}
public static void main(String args[])throws IOException
{
Vector2D points[]=new Vector2D[4];
int i;
for(i=0;i<4;i++)
points[i]=getPoint(i);
for(i=0;i<4;i++)
System.out.print(points[i]+" "); //調用對象的toString函數,將返回的字符串輸出
System.out.println();
Vector2D v;
Vector2D u;
for(i=0;i<=1;i++)
{
v=points[i+1].minus(points[i]);
u=points[(i+3)%4].minus(points[i+2]);
if(!v.isParallelogram(u)) //若向量1,3或者向量2,4不平行,返回
{
System.out.println("Not a parallelogram!");
return;
}
}
System.out.println("Yes,this is a parallelogram");
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -