【JAVA 第四章 流程控制语句】课后习题 判断两个圆是否相交 圆和直线的位置关系
2019-06-15 21:12
393 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43933620/article/details/92193589
知识点:
1.点到直线的距离公式
d = Ax +By +C = 0 根号 A^2+B ^2
2.直线方程的一般式
Ax + Bx + C = 0
A = y2 -y1
B =x1 -x2
C = x2 * y1 - x1 *y2
3.两圆关系:
圆心距 大于 半径和 = 相离
圆心距 等于 半径和 = 相切
圆心距 小于 半径和 = 相交
圆心距 + 小圆半径 小于大圆半径 = 包含关系
4.圆与直线的位置关系
- d < r 相交
- d = r 相切
- d > r相离
public class Test{ public static void main(String[] args) { MyCircle mc = new MyCircle(); mc.r = 4; mc.areaCricle(); System.out.println(); mc.circumference(); System.out.println(); mc.intersect(1,2,3,4,5,6); System.out.println(); mc.myLineCircle(1,2,3,4,5,6); } } class MyCircle{ int centerCricle;//圆心 int r;//半径 double pi = 3.14; public void areaCricle(){ //计算圆的面积 S = π r的 平方 System.out.println(pi*r*r); } public void circumference(){ //计算圆的周长 c = 2 π r = π d System.out.println(2*pi*r); } public void intersect(int x1,int y1,int x2,int y2,int circleR1,int circleR2){ //判断元是否相交 半径和等于圆心距 相切 半径和 小于圆心距 相离 半径和大于圆心距 相交 //圆心距+小圆半径 小于大圆半径 是包含关系否则相交 //求两点距离 既是圆心距 double d = Math.sqrt(Math.pow(x1-x2,2) + Math.pow(y1-y2,2)); if (circleR1 + circleR2 < d){ System.out.println("两圆相离"); } if (circleR1 + circleR2 == d){ System.out.println("两圆相切"); } if (circleR1 + circleR2 > d){ System.out.println("两圆相交"); } } //直线与圆的位置关系 public void myLineCircle(int x1,int y1,int x2,int y2,int cx,int cy){ //公式 d=|Ax0+By0+C|/√(A^2+B^2) int a = y2-y1; int b = x1-x2; int c = x2*y1 - x1*y2; double d; d=Math.abs(a*cx + b*cy + c) / Math.sqrt(a*a+b*b); if (d > r){ System.out.println("圆和直线的关系是:相离"); } if (d == r){ System.out.println("圆和直线的关系是:相切"); } if (d < r){ System.out.println("圆和直线的关系是:相交"); } } }
相关文章推荐
- 判断点是否在直线上或线段上 判断线段相交 点与多边形的位置关系
- 【慕课笔记】第四章 流程控制语句 第9节 JAVA循环跳转语句之break
- 【慕课笔记】第四章 流程控制语句 第4节 JAVA条件语句之嵌套if
- 【慕课笔记】第四章 流程控制语句 第11节 JAVA循环语句之多重循环
- 判断两个单链表是否相交--java实现
- java-----转义字符,运算符和Scanner、Random两个基础类,if-else流程控制语句
- Introduction to Java Programming编程题3.28<判断两个长方形是否相交>
- java控制流程语句之(if)判断语句
- java 判断两个单链表是否相交
- 【慕课笔记】第四章 流程控制语句 第5节 JAVA条件语句之switch
- 判断两个div的位置是否相交,可以判断相互包含的特殊情况
- 【慕课笔记】第四章 流程控制语句 第3节 JAVA条件语句之多重if
- 【慕课笔记】第四章 流程控制语句 第7节 JAVA条件语句之do...while
- 【慕课笔记】第四章 流程控制语句 第6节 JAVA条件语句之while
- 判断两个单链表是否相交--java实现
- JAVA流程控制语句(顺序语句、判断、选择判断语句、while循环、do while循环、for循环、break、continue关键字)
- Java代码 判断两个链表是否相交
- 判断平面上两线段是否相交,顺便解释判断点在直线的位置...
- 【慕课笔记】第四章 流程控制语句 第2节 JAVA条件语句之if...else...
- 判断两个单链表是否相交--java实现