有一道面试题是:写一个方法用于判断一个圆和一个矩形是否相交。
这道题的解题思路应该是什么,我用了几种方法都有漏洞,希望不吝赐教。最好是用java写出来,其他语言也没问题,或者只介绍思路也行,多谢了。
这道题的解题思路应该是什么,我用了几种方法都有漏洞,希望不吝赐教。最好是用java写出来,其他语言也没问题,或者只介绍思路也行,多谢了。
解决方案 »
- 怎么把bufferedimage转成 gif文件,用JAI(Java Advanced Imaging API)
- JDIC ! JDIC ! Java 嵌入浏览器
- Java打印菱形问题
- 有关Java学习的,请各位指教
- 请问谁知道这个组件!!!!??
- 请问哪里有可以下载的jbuilder6.iso文件
- 关JLabel的问题
- 我想问一下:我下载的<<中文Jbuilder开发指南>>怎么会打不开,出现错误?
- 简单问题:在网页中如何直接关闭一个IE窗口?
- 关于ObjectInputStream 报错 invalid stream heade
- 帮我看看这段将手机号后八位转换成16进制的问题代码,顺便给我一个 解决方案谢谢胃!!
- 100分求Java代码 判断线段是否相交
你首先需要有圆的坐标表示,肯定是(x-a.x)(x-b.x)+(y-a.y)(y-b.y)=r*r的形式,然后有矩形的表示肯定是四个线段。。
然后分别用四条线带入圆公式,有解代表有焦点~~
计算机的几何其实是建立在普通几何的基础上,在计算机中表示如果你没有写出特定的处理几何的类,那你就先在纸上把那些公式先化简,之后写进去运算就可以了
return new Rectangle(x, y, WEIGHT, HEIGHT);
}Rectangle碰撞检测
return new Rectangle(x, y, WEIGHT, HEIGHT);
} Rectangle碰撞检测
就是这个 写游戏的时候这个经常用到
return new Rectangle(x,y,WIDTH,HEIGTH);
}this.getRect().intersects(t.getRect())
如果垂点在边线段外, 则检查(a-r)*(b-r),<=0则相交,否则不相交
如果垂点在边线段上, 则只有c<=r(=时相切), 且a或b>r才相交 分别检查4边 这种方法应该是正确的
if (a2<=x1 and x1<=a1) and (x2>a1 or x2<a2) then
相交
else if (a2<=x2 and x2<=a1) and (x1>a1 or x1<a2) then
相交
else
不相交。分别算四段线段就可。
可以把计算线段的部分做成函数调用四次,有1个相交就是相交。
但是java中有这些类和方法吗?能否给出具体实现?