如何检测重叠的圆圈并相应地填充颜色?

2024-04-18

我使用 3 个数组(用于 x、y 和半径大小)创建了 5 个具有随机 x 和 y 坐标和半径的圆。但是,我需要圆圈根据它们是否与另一个圆圈重叠来动态改变颜色。因此,如果 5 个圆圈之一根本不重叠,则应将其涂成黑色。重叠的圆圈应为青色。如果两个圆的中心点之间的距离小于它们的半径之和,则认为两个圆重叠。

这是我到目前为止为圆圈类写的内容。 以下代码将成功在小程序窗口中绘制 5 个圆圈,并且成功计算距离,但问题出在着色上。颜色填充似乎存在逻辑错误,我在这里没有看到问题。有什么建议么?太感谢了。

public class Circles extends Applet {

public void paint(Graphics page)
{
    Random locator = new Random();
    int [] xpt = new int [5];
    int [] ypt = new int [5];
    int [] rad = new int [5];

    setPreferredSize (new Dimension(300, 300));
    for (int i = 0; i < xpt.length; i++){

        xpt[i] = locator.nextInt(100); //need to set a number or it goes into millions, cannot set it in Random()
        ypt[i] = locator.nextInt(100);
        rad[i] = locator.nextInt(100);
        System.out.println("The #" + i +  " x-point: " + xpt[i] + " y-point: " + ypt[i] + " radius: " + rad[i]);  //for debugging purposes

        for (int j = 0; j < xpt.length; j++){
            double xpoint1 = xpt[i]+rad[i];
            double ypoint1 = ypt[i]+rad[i];
            double xpoint2 = xpt[j]+rad[j];
            double ypoint2 = ypt[j]+rad[j];
            double radius1 = rad[i];
            double radius2 = rad[j];
            double theDistance = distance(xpoint1,ypoint1,xpoint2,ypoint2); 
            System.out.println("Comparing " + i + " to " + j); //for debugging and logic checking
            if (i==j)
                ;
            else if (theDistance <= (radius1+radius2))
            {
                page.setColor(Color.cyan);
                page.fillOval(xpt[i], ypt[i], rad[i], rad[i]);
                //page.fillOval(xpt[j], ypt[j], rad[j], rad[j]);
                System.out.println("Overlap occurred. Colored " + i + " and " + j + " cyan.");
                System.out.println("Center points: ("+ xpoint1 +", "+ ypoint1 +") and ("+ xpoint2 + ", "+ ypoint2 + ").");
            }
            else  
            {
                page.setColor(Color.black);
                page.fillOval(xpt[i], ypt[i], rad[i], rad[i]);
                //page.fillOval(xpt[j], ypt[j], rad[j], rad[j]);
                System.out.println("No overlap. Made " + i + " and " + j + " black.");
            }
        }
    }
}

public static double distance(
        double x1, double y1, double x2, double y2) {
    return Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));

}
}

xpoint、ypoint 等线并没有按照您的想法进行。

如果要确定两个圆是否重叠,则需要确定圆心之间的距离是否大于或小于它们的半径之和。

So:

function circlesCollide(x1, y1, r1, x2, y2, r2){
    return (distance(x1, y1, x2, y2) <= (r1 + r2));
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何检测重叠的圆圈并相应地填充颜色? 的相关文章

  • 使用选项卡式活动中的捆绑包将值从活动传递到片段

    我是一个java文盲 但仍在尝试开发一个供我个人使用的应用程序 我从 android studio 的 Tabbed Activity 开始 除了 MainActivity 中的一个片段和一个包之外 大部分没有改变 这是我的代码 主要活动
  • 如何自定义BlockingQueue的阻塞行为

    我想创建一个阻塞队列 它根据自定义规则而不是队列中的项目数量来阻止生产者 例如 生产者生成一些文件并放入队列中 消费者经过一番分析后将它们转移到特定位置 对于上述场景 如果队列中的总文件大小达到某个阈值 我希望生产者等待生成新文件 如果总大
  • JavaEE 8 教程,在 hello1 项目上部署失败

    我正在尝试学习 Java EE 8 我遵循了官方指南https javaee github io tutorial https javaee github io tutorial 但我有这个问题 cargo maven2 plugin 1
  • JPanel透明背景和显示元素[重复]

    这个问题在这里已经有答案了 我插入一个背景图e 变成 aJPanel但一些界面元素消失了 以下 Java Swing 元素不会出现 标签标题 标签 usuario 标签 密码 按钮加速器 你能否使图像透明或元素不透明 setOpaque f
  • .java 和 .scala 类之间是否可能存在循环依赖?

    假设我在 java 文件中定义了类 A 在 scala 文件中定义了类 B A 类使用 B 类 B 类使用 A 类 如果我使用 java 编译器 则会出现编译错误 因为 B 类尚未编译 如果我使用scala编译器A类将找不到 有没有可以同时
  • 使用 Java 编程式 HTML 文档生成

    有谁知道如何在 Java 中以编程方式生成 HTMLDocument 对象 而不需要在外部生成字符串 然后使用 HTMLEditorKit read 来解析它 我问的两个原因 首先 我的 HTML 生成例程需要非常快 并且我认为将字符串解析
  • JUnit Eclipse 显示 System.out.print() 的

    我正在使用 JUnit 3 和 Eclipse 3 4 当我运行 JUnit 测试用例时 一切正常并且测试完美完成 唯一的事情是我想查看我正在运行的类的输出 所有类都具有一些输出值的基本 System out print 因此 当我运行测试
  • Java:检查给定日期是否在当前月份内

    我需要检查给定的日期是否在当前月份 我编写了以下代码 但 IDE 提醒我getMonth https docs oracle com javase 7 docs api java util Date html getMonth and ge
  • 如何在具有动态列的表中插入值 Jdbc/Mysql

    我想在具有动态列的表中添加值 我设法创建一个包含动态列的表 但我不知道如何插入数据 Create Table sql CREATE TABLE MyDB myTable level INTEGER 255 int columnNumber
  • 如何消除警告:使用“$”而不是“.”对于 Eclipse 中的内部类

    我是 Android 开发新手 当我将 eclipse 和 Android SDK 更新到最新版本后 我收到警告 Use instead of for inner classes or use only lowercase letters
  • Vertx HttpClient getNow 不工作

    我的 vertx HttpClient 有问题 下面的代码显示使用 vertx 和纯 java 测试 GET Vertx vertx Vertx vertx HttpClientOptions options new HttpClientO
  • 您能让 Tomcat 6 stdout.log 文件表现得像 log4j DailyRollingFileAppender 吗?

    我们使用的是 Tomcat 6 的 Windows 安装 默认情况下 我们应用程序的 log4j 输出将转到 catalina base logs stdout log 文件 该日志文件仅在我们重新启动 Tomcat 时滚动 并且文件名始终
  • 如何在将数据发送到 Firebase 数据库之前对其进行加密?

    我正在使用 Firebase 实时数据库制作聊天应用程序 我知道 Firebase 非常安全 只要您的规则正确 但我自己可以阅读使用我的应用程序的人的所有聊天记录 我想阻止这种情况 为此我需要一种解密和加密方法 我尝试使用凯撒解密 但失败了
  • 如何修复此 YCrCb -> RBG 转换公式?

    我使用的公式来自这个问题 https stackoverflow com questions 8838481 kcvpixelformattype 420ypcbcr8biplanarfullrange frame to uiimage c
  • 通用 JSF 实体转换器[重复]

    这个问题在这里已经有答案了 我正在编写我的第一个 Java EE 6 Web 应用程序作为学习练习 我没有使用框架 只是使用 JPA 2 0 EJB 3 1 和 JSF 2 0 我有一个自定义转换器 用于将存储在 SelectOne 组件中
  • 用 Java 创建迷宫求解算法

    我被分配了用 Java 创建迷宫求解器的任务 这是任务 Write an application that finds a path through a maze The maze should be read from a file A
  • 如何计算文件中单词的长度?爪哇

    我正在尝试编写一个代码来计算文件中特定长度的单词数 例如 How are you 会打印 Proportion of 3 letter words 100 3 words 我想计算长度为 1 2 3 4 5 6 7 8 9 10 11 12
  • Java泛型类型

    当我有一个界面时 public interface Foo
  • 监控 Java 应用程序上的锁争用

    我正在尝试创建一个小基准 在 Groovy 中 以显示几个同步方法上的高线程争用 当监控自愿上下文切换时 应该会出现高争用 在 Linux 中 这可以通过 pidstat 来实现 程序如下 class Res private int n s
  • Java 9 中紧凑字符串和压缩字符串的区别

    有什么优点紧凑的字符串 http openjdk java net jeps 254JDK9 中的压缩字符串 压缩字符串 Java 6 和紧凑字符串 Java 9 都有相同的动机 字符串通常实际上是 Latin 1 因此浪费了一半的空间 和

随机推荐

  • asp.net core 5.0 RequestSizeLimit 不起作用

    我正在使用 ASP net core 5 0 看起来RequestSizeLimit不管用 我有以下控制器 HttpPost addfile RequestSizeLimit 5 242 880 5MB public IActionResu
  • RAY Python 框架内存不足

    我用 ray 创建了一个简单的远程函数 它占用的内存很少 然而 运行一小段时间后 内存稳步增加 并且出现 RayOutOfMemoryError 异常 下面的代码是这个问题的一个非常简单的例子 result transformed nump
  • Django Admin:将多个管理类注册到同一模型

    是否可以将多个管理类注册到同一模型 我想让 PostAdmin 和 MyPostAdmin 都注册到 Post 模型 现在我正在尝试将代理模型与 MyPost 一起使用 但它在管理面板中为我提供了两个不同的模型 并且具有各自的功能 管理员
  • Firebase 通过函数写入 Firestore 时出错:“7 PERMISSION_DENIED:缺少或权限不足”

    我正在尝试编写一个简单的 Firebase 函数 使用 TypeScript 将记录添加到 Firestore 代码的精简版本是 import as admin from firebase admin import as functions
  • php/mysql:自定义站点搜索

    首先 我无法使用 sphinx 因为我使用共享托管 我不喜欢谷歌解决方案 即 自定义搜索有这些愚蠢的广告 而且网站搜索不是免费的 我想自己创建搜索机制 我有页面表 我想通过关键字搜索页面内容 在结果页面上我想显示与所需关键字匹配的部分文本
  • 将 Laravel 项目文件保存在 public_html 中是否不安全?

    我在共享主机上的 public html 即下一级 中有 3 个不同的 laravel 项目 我更改了每个域 子域文档根路径以指向相应的项目 公共文件夹 即 public html project1 public 此外 我将 Options
  • 什么时候适合使用分号?

    我知道 JavaScript 以及 TypeScript 在很多情况下支持省略分号 尽管如此 我想添加分号以使其明确 如建议的那样TypeScript 深入探究 https basarat gitbooks io typescript co
  • LINQ to Entities 无法识别方法“System.String ToString(Int32)”

    您好 我正在使用 linq 查询 该查询抛出错误 LINQ to Entities does not recognize the method System String ToString Int32 method 并且此方法无法转换为存储
  • Queryable.OfType 如何工作?

    重要的问题不是 Queryable OfType 是什么 do 它是 我在那里看到的代码如何实现这一点 反思 Queryable OfType 我看到 经过一些清理后 public static IQueryable
  • FluentValidation LogOnFailure 覆盖

    在我的验证器类中 我有一些规则 我需要将一些验证错误记录到数据库中 这是我的验证器 RuleFor u gt u LastName Cascade CascadeMode StopOnFirstFailure NotEmpty WithMe
  • 在 AngularJS 中使用 typescript 检查 HTML 中的插值/绑定

    我知道 TypeScript 可以检测 ts 文件的编译错误 然而 如何在 AngularJS 视图 模板中获得这些好处呢 例如 如果我有这样的代码 div home property1 div 我定义了一个 HomeController
  • 如何在由 create-react-app 创建的应用程序中使用 jsx 文件(无需运行“npm runject”)?

    目前我只能使用 js 文件 如果我尝试使用 jsx 这将导致错误 问题是这样的 我通常使用代码格式化程序 而在js文件中编写jsx和格式化 会导致代码完全乱序 还会导致语法错误 我是 React 新手 所以我不知道如何配置使用 jsx 文件
  • 使用 RSPEC 进行测试时突然出现莫名其妙的活动记录连接超时

    这是一个我几乎一无所知的领域 所以提前道歉 我有一套超过 800 个 rspec 测试 当运行整个集合或只是特定的测试文件时 在其中几个之后 例如 20 个左右 尽管它从来不是完全相同的数字 突然且莫名其妙地 每个测试都开始失败并出现相同的
  • MySQL JSON 数据类型是否会影响数据检索的性能?

    假设我有一个名为的 MySQL JSON 数据类型custom properties对于媒体表 存储在 json 数据中的示例custom properties列可以是 company id 1 uploaded by Name docum
  • Mosquitto 1.4.2 Websocket 支持

    我正在尝试利用 Mosquittos 最近的更新来支持代理中的 websocket 我正在运行 Mosquitto v1 4 2 并将以下几行添加到 mosquitto 配置文件 mosquitto conf 中 listener 1000
  • 如何在 C# WPF 中让主窗口等待新打开的窗口关闭?

    我是 WPF 和 C 的新手 请耐心等待 我有一个主窗口 它打开一个新窗口 现在这个新窗口是一个提示是否覆盖文件的提示 主窗口访问新窗口中的一个公共变量来检查提示的结果 但我无法让主窗口处理等到新窗口关闭 Window1 Win new W
  • 没有 pom.xml 的 Jenkins 的加特林插件

    有没有人尝试过使用加特林插件 https wiki jenkins ci org display JENKINS Gatling Plugin对于詹金斯 但没有maven 我没有 Maven 项目 但我使用终端 bash 脚本 中的 Gad
  • 将事件传递/转发到 Qt 中的子对象

    我正在开发 Qt 应用程序 但在将鼠标事件获取到我想要的位置时遇到问题 这是我所拥有的高级视图 每个级别上还发生其他事情 这些事情决定了视图和场景的需求 App Window QMainWindow View QGraphicsView G
  • Gradle 使用不同的资源和类进行多次战争

    我有一个Java Web项目 我使用Gradle来构建项目 项目结构如下 我想使用 Gradle 构建 2 个 war main war 和 api war wars 结构如下 我已经尝试了很多次来构建这两个战争 但是当 main war
  • 如何检测重叠的圆圈并相应地填充颜色?

    我使用 3 个数组 用于 x y 和半径大小 创建了 5 个具有随机 x 和 y 坐标和半径的圆 但是 我需要圆圈根据它们是否与另一个圆圈重叠来动态改变颜色 因此 如果 5 个圆圈之一根本不重叠 则应将其涂成黑色 重叠的圆圈应为青色 如果两