黑马程序员技术交流社区
标题:
一个几何问题:两个矩形
[打印本页]
作者:
电玩
时间:
2013-5-10 12:44
标题:
一个几何问题:两个矩形
本帖最后由 电玩 于 2013-5-10 16:00 编辑
3.28(几何方面:两个矩形)编写一个程序,提示用户输入两个矩形中点的X坐标和Y坐标以及它们的宽度和高度。然后判定第二个矩形是在第一个矩形内
,还是和第一个矩形有交集,或者是没有交集。
这道题出自《java语言程序设计》(美 Y.Danilei Liang)第三章 第28题 的(**)两星题(难)。自己做不出来,求高手解答,代码要注释。
作者:
long
时间:
2013-5-10 13:45
不难啊,我帮楼主做。
作者:
long
时间:
2013-5-10 15:41
本帖最后由 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("第二个矩形和第一个矩形有交集。");
}
}
复制代码
作者:
电玩
时间:
2013-5-10 15:59
long 发表于 2013-5-10 13:45
不难啊,我帮楼主做。
谢谢大侠!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2