gpt4 book ai didi

java - 当圆形和正方形的中心对齐时,如何判断它们是否重叠

转载 作者:行者123 更新时间:2023-12-02 09:24:11 24 4
gpt4 key购买 nike

我不一定要寻找代码来解决这个问题,而是更多地寻找如何找出其背后的逻辑。

我正在为我正在上的计算机科学类(class)做作业,其中一个问题指出,“isUntangled 方法接受两个参数:圆的直径和正方形的边长,均为 double 类型。它返回true 当且仅当圆和正方形的中心对齐时不相交”

这是为了帮助理解而提供的图像: Image

如果直径小于正方形的边长,我尝试简单地返回 True,或者如果正方形的边长小于圆的直径,则返回 True。现在回头看,我明白为什么它不起作用了。

我更想看看是否有人可以解释可用于解决这个问题的逻辑/数学。

谢谢

最佳答案

有两种理解逻辑的方法

1.中方柔性圆

  • 假设有一个中等大小的正方形,在它的中心有一个非常小的圆圈。
  • 增加圆的直径并检查所有情况。
      1. 首先在正方形内完全画圆。
    • 直径和边长相同时,在中点处画圆接触边。 (共4次触摸)
    • 之后,圆与每一边相交2次,直到第4步。(共8次相交)
    • 上次圆只触及正方形的角。这时我们需要求圆的直径是多少? (共4次触摸)
      • 此时正方形的对角线接触圆(它是弦)并且也穿过圆心,所以对角线是直径
      • 直径 = 对角线 = 边长 * √2
    • 之后,圆完全离开正方形。

2.中圆柔性正方形

  • 假设有一个中等大小的圆圈,其中心是一个非常小的正方形。
  • 增加正方形边长并检查所有情况。
      1. 首先将正方形完全放在圆内。
    • 第一次接触时代广场的角落。 (共4次触摸)这时候我们需要求边长是多少? (共4次触摸)
      • 此时正方形的对角线接触圆(它是弦)并且也穿过圆心,所以对角线是直径
      • 边长 = 对角线/√2 = 直径/√2
    • 之后,正方形的每条边与圆相交2次,直到第4步。(共8次相交)
    • 上次,当直径和边长相同时,只有正方形的边中点接触圆。
    • 之后,方完全离开圆。

因此,在这种情况下,圆和正方形在这两种状态之间都相切(两种情况相同)。

关于java - 当圆形和正方形的中心对齐时,如何判断它们是否重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58455713/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com