Java生成两个圆判断是否重叠,用java随机画出两个圆,判断它们是不是相交
用java随机画出两个圆,判断它们是否相交
import java.awt.*;
import java.util.Random;
import javax.swing.*;
import javax.swing.border.TitledBorder;
/***
7. * 随机画出两个圆,判断它们是否相交
8. * @author Firklaag
9. * @ver 0.01
10. * 编写代码实现同一平面内两圆是否碰撞,其中:第一个圆圆心坐标为(x1,y1),
半径是r1,第二个圆圆心坐标为(x2,y2),
半径是r2,数据结构自定义。
11. */
public class CheckCircul extends JFrame {
//定义画布
private MyPanel myPanel = new MyPanel();
public CheckCircul() {
add(myPanel);
}
public static void main(String[] args) {
CheckCircul demo = new CheckCircul();
run(demo, 800, 700);
}
/*
* 运行辅助方法
*/
public static void run(final JFrame f, final int width, final int height) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
f.setTitle(f.getClass().getSimpleName());
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(width, height);
f.setVisible(true);
}
});
}
}
/*
40. * 画布类
41. */
class MyPanel extends JPanel {
//定义标签
private JLabel label = new JLabel();
//定义随机数
private Random ran = new Random();
//定义两个圆
private Circul tom;
private Circul jerry;
/**
52. * 生成两个圆并增加标签到画布
53. */
public MyPanel() {
tom = new Circul(ran.nextInt(300), ran.nextInt(300), ran.nextInt(400));
jerry = new Circul(ran.nextInt(300), ran.nextInt(300), ran.nextInt(400));
this.setBorder(new TitledBorder("CheckCircul"));
add(label);
}
@Override
protected void paintComponent(Graphics g) {
//画出两个圆
Rectangle rec1 = tom.draw(g);
Rectangle rec2 = jerry.draw(g);
//判断其是否相交
if (rec1.intersects(rec2)) {
label.setText("相交");
} else {
label.setText("不相交");
}
}
}
/**
76. * 定义圆形类,类中不仅有圆的属性,还有画圆的方法
77. */
class Circul {
private int x;
private int y;
private int r;
public Circul(int x, int y, int r) {
this.x = x;
this.y = y;
this.r = r;
}
public Rectangle draw(Graphics g) {
Graphics2D g2d = (Graphics2D) g.create();
//调用抗锯齿API
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
g2d.drawOval(x, y, r, r);
return new Rectangle(x, y, r, r);
}
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
public int getR() {
return r;
}
public void setR(int r) {
this.r = r;
}
}
3 楼
jorneyR
2010-11-26
判断两圆心距离与两圆的半径之和就可以了
4 楼
realcbb
2010-11-26
jorneyR 写道
判断两圆心距离与两圆的半径之和就可以了
要看包含算不算相交
5 楼
su1216
2010-11-26
外离 外切 相交 内切 内含
一共5种情况
6 楼
Firklaag
2010-11-26
同学。。。你怎么把我的博客乱贴啊。。。
连注释都还是我的名字 没改 @author Firklaag
之前看你乱贴别人的,转载要说明啊
7 楼
aabcc
2010-11-26
又开始 转载别人的 不加说明吗?
LZ你适可而止吧。
8 楼
Firklaag
2010-11-26
有人转了我的文章,我就顺便说一下,
这个东西是我面试时做的,一心只想快速完成,基本无难度。
9 楼
haitaohehe
2010-11-26
楼主怎么这样啊?
10 楼
gundumw100
2010-11-26
初中数学没学好吧。
11 楼
softor
2010-11-26
今天才知道Javaeye还有这样的人啊~
12 楼
爪哇岛岛主
2010-11-26
兄弟,你还要努力啊
13 楼
hjg1988
2010-11-27
如果真是这样,那得bs一下楼主
14 楼
elementstorm
2010-11-27
隐藏之...最讨厌这样的
15 楼
smzd
2010-11-27
哈哈,版权人找上门来了
16 楼
lzrzhao
2010-11-27
判断圆心的距离是否小于两个圆的半径之和就可以了
17 楼
tovenja
2010-11-27
如果内含呢
18 楼
jorneyR
2010-11-28
realcbb 写道
jorneyR 写道
判断两圆心距离与两圆的半径之和就可以了
要看包含算不算相交
是的,这个时间确实需要使用原心坐标和半径差来进一步判断。
19 楼
lwz777
2010-11-28
同一平面内,两圆的半径就可以做到!
20 楼
passionke
2010-11-28
转别人的文章是要说明清楚阿
不过原版人也V5 直接杀过来了 呵呵
21 楼
xiaotian8945
2010-11-28
在同一平面中:
A圆的半径为x,B圆的半径为y,两圆圆心距离为z。
如果x+y < z, 则两圆不相交;
如果x-y < z < x+y,则两圆相交;
如果|x-y| > z,则两圆内含。
LZ有空看看初中数学吧
22 楼
hyhyhy108
2010-12-02
找出圆心,计算两个圆心之间的距离是否小于等于两个圆的半径之和
Java生成两个圆判断是否重叠,用java随机画出两个圆,判断它们是不是相交相关推荐
- matlab绘制两个函数,用matlab程序 在同一图中绘制两个函数,这两个函数分别是: , ,,matlab怎样同时画出两个函数图...
导航:网站首页 > 用matlab程序 在同一图中绘制两个函数,这两个函数分别是: , ,,matlab怎样同时画出两个函数图 用matlab程序 在同一图中绘制两个函数,这两个函数分别是: , ...
- java 坦克重叠_【Java】我所知道坦克大战(单机版)之画出坦克的实心圆、让圆动起来、双缓冲解决闪烁问题...
28640发布于 今天 02:47 本篇文章目的 画出坦克的实心圆 让坦克圆动起来 双缓冲解决闪烁问题 一.画出代表坦克的实心圆 我们需要画出一个圆,那么可以使用fillOval方法 fillOval ...
- dynamo怎样由线生成体_怎样用最简单的笔刷画出最靓的产品!?
本文来源:黄山首绘-形演72计教程 怎样用最简单的笔触画出最靓的产品?如果你正在学习工业设计手绘或者曾经学习过工业设计手绘,手绘从初学到进步成长再到熟练运用,你会发现一个规律,尤其是数字手绘.那就是越 ...
- 利用Excel饼图画出八等份圆
想画出八等份圆,在Excel里用八个数据格,数字设为1,插入中选择图表为饼图 如果想要白色的圆,按住圆将设置数据系列格式修改为无填充,边框设置为实线 把图表元素都取消掉就显示一个圆
- R语言ggplot2可视化、在一张图中画出两条曲线(two lines in same ggplot2 graph)、使用pdf函数将ggplot2可视化图像保存到指定目录的pdf格式文件中
R语言ggplot2可视化.在一张图中画出两条曲线(two lines in same ggplot2 graph).使用pdf函数将ggplot2可视化图像保存到指定目录的pdf格式文件中 目录
- python如何画3个相切的圆_如何在几何画板中画出三个两两相切的圆
<圆和圆的位置关系>是人教版九年级数学必学内容,在学习圆与圆的位置关系时,我们都知道圆与圆的位置关系有:相离,外切,相交,内切,内含,它们之间的位置是由圆心距与两半径的长度来确定的.那么如 ...
- java 生成 tar.gz_一文教您如何通过 Java 压缩文件,打包一个 tar.gz Filebeat 采集器包...
一.背景 最近,小哈主要在负责日志中台的开发工作, 等等,啥是日志中台? 俺只知道中台概念,这段时间的确很火,但是日志中台又是用来干啥的? 这里小哈尽量地通俗的说下日志中台的职责,再说日志中台之前,我 ...
- java 生成xml乱码_jdom解决中文乱码问题 JAVA生成xml文件帮了我很大的忙
决解了数据库读取出来 再保存到xml 产生的乱码问题 import java.io.FileOutputStream; import java.io.IOException; import java. ...
- java生成1到10的随机数_用java生成一个1到10十个数字随机排列的数组
效果如图: 代码如下public class ArrayListToAry { public static void main(String[] args) { // 数组 int[] ary = n ...
最新文章
- 大手笔 !Julia Computing 获 2400 万美元融资,前 Snowflake CEO 加入董事会
- 二者取其一(初遇)_网络流
- GridView:根据单元格的值给单元格着色
- QT的QFile类的使用
- percona-toolkit工具包安装
- Andorid之Log图文详解(Log.v,Log.d,Log.i,Log.w,Log.e)的用法总结
- _Linux后台开发6大常用的开源库,让你在同行中脱颖而出
- [转] Sublime Text3 配置 NodeJs 环境
- Python Parse JSON –转储,加载
- 详解Android常用抓包工具的使用方法、技巧-学习笔记20220416
- 提高非参数检验功效的潜在方法
- SAP 汇率处理总结
- HLS_2 数据精度处理
- 苹果支付v2 通知(订阅/退款回调通知)
- usage.txt-1
- 采访座谈快速出稿利器——讯飞智能录音笔SR502
- svn不支持中文路径问题的解决
- 1、Anaconda安装TensorFlow(一)
- venn diagram_Venn Diagram Python软件包:Vennfig
- Tkinter 莫烦 基础