本帖最后由 long 于 2013-5-10 15:42 编辑
- public class Rectangle{
- public static int getInt(){
- int i = 0;
- try{
- byte[] buf = new byte[20];
- System.in.read(buf);
- String s = new String(buf);
- i = Integer.parseInt(s.trim());
- }
- catch(Exception e){
- System.out.println("程序遇到异常,即将终止");
- System.exit(0);
- }
- finally{
- return i;
- }
- }
- public static void sop(Object o){
- System.out.print(o);
- }
-
- public static void main(String[] args){
- //先定义并初始化两个矩形的变量
- int rx1 = 0; //第一个矩形的x坐标
- int ry1 = 0; //第一个矩形的y坐标
- int width1 = 0; //第一个矩形的宽度
- int height1 = 0; //第一个矩形的高度
-
- int rx2 = 0; //第二个矩形的x坐标
- int ry2 = 0; //第二个矩形的y坐标
- int width2 = 0; //第二个矩形的宽度
- int height2 = 0; //第二个矩形的高度
-
- sop("请输入第一个矩形的x坐标(按回车键结束):");
- rx1 = getInt();
- sop("请输入第一个矩形的y坐标(按回车键结束):");
- ry1 = getInt();
- sop("请输入第一个矩形的宽度(按回车键结束):");
- width1 = getInt();
- sop("请输入第一个矩形的高度(按回车键结束):");
- height1 = getInt();
- sop("\n");
-
- sop("请输入第二个矩形的x坐标(按回车键结束):");
- rx2 = getInt();
- sop("请输入第二个矩形的y坐标(按回车键结束):");
- ry2 = getInt();
- sop("请输入第二个矩形的宽度(按回车键结束):");
- width2 = getInt();
- sop("请输入第二个矩形的高度(按回车键结束):");
- height2 = getInt();
-
- int left1 = rx1 - width1/2; //矩形一的左下角的x坐标,确定矩形一最左边
- int right1 = rx1 + width1/2; //矩形一的右上角的x坐标,确定矩形一最右边
- int up1 = ry1 + height1/2; //矩形一的右下角的y坐标,确定矩形一最高点
- int down1 = ry1 - height1/2; //矩形一的左下角的y坐标,确定矩形一最低点
-
- int left2 = rx2 - width2/2; //矩形二的左下角的x坐标,确定矩形二最左边
- int right2 = rx2 + width2/2; //矩形二的右上角的x坐标,确定矩形二最右边
- int up2 = ry2 + height2/2; //矩形二的右下角的y坐标,确定矩形二最高点
- int down2 = ry2 - height2/2; //矩形二的左下角的y坐标,确定矩形二最低点
-
- //判定第二个矩形是否在第一个矩形内
- if(left1 <= left2 && right1 >= right2 && up1 >= up2 && down1 <= down2){
- sop("第二个矩形在第一个矩形内。");
- return;
- }
- //判定第二个矩形和第一个矩形是否没有交集
- else if(right1 <= left2 || left1 >= right2 || down1 >= up2 || up1 <= down2){
- sop("第二个矩形和第一个矩形没有交集。");
- return;
- }
- else
- sop("第二个矩形和第一个矩形有交集。");
- }
- }
复制代码 |