📄 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 + -