Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Geometry 向量数学与矩形_Geometry_Vector_Rectangles - Fatal编程技术网

Geometry 向量数学与矩形

Geometry 向量数学与矩形,geometry,vector,rectangles,Geometry,Vector,Rectangles,我知道这更像是高中数学(哇,我在那里已经很久了),但我正试图通过编程解决这个问题,所以我接触到了stackoverflow的集体知识 鉴于这种布局: 中点是我的参考点,在一个数组中,我有所有其他点的向量点(p) 我可以通过将浅蓝色区域分成四个象限,并进行跛脚气泡排序,在每个象限中找到最大(y)或最小(x)值,从而达到这种状态 我只需要找到外边界完全击中红色而非白色空间的象限。例如,左下角和右上角的浅蓝色矩形上没有任何空白 我确信我的术语在这里是完全错误的,我不寻找任何特定的代码,但是如果有人能

我知道这更像是高中数学(哇,我在那里已经很久了),但我正试图通过编程解决这个问题,所以我接触到了stackoverflow的集体知识

鉴于这种布局:

中点是我的参考点,在一个数组中,我有所有其他点的向量点(p)

我可以通过将浅蓝色区域分成四个象限,并进行跛脚气泡排序,在每个象限中找到最大(y)或最小(x)值,从而达到这种状态

我只需要找到外边界完全击中红色而非白色空间的象限。例如,左下角和右上角的浅蓝色矩形上没有任何空白

我确信我的术语在这里是完全错误的,我不寻找任何特定的代码,但是如果有人能为我指出一个更优化的解决方案,或者我已经拥有的下一步


谢谢

我可能会先做一些BFI解决方案,然后再考虑将其推广,或者至少将其简化为一个表驱动循环

所以,如果它正是这些形状,而不是一个一般的解决方案,我认为您应该这样做:

  • 导出蓝色矩形的坐标。我怀疑有一件事让你感到困惑,那就是蓝色矩形中有每个单独的x和y,但你不能轻松地循环它们

  • 导出每个矩形边中点的坐标。您需要这样做,因为您关心象限。一旦你完成了1,这将是微不足道的

  • 为每个1/2矩形边编写不同的代码。毫无疑问有一种更聪明的方法,但这将得到有效的代码

  • 如果您愿意,现在就让它更优雅。我打赌您可以将规则减少到8行 桌子上摆满了像1、-1之类的东西


  • 首先,不能用单个向量定义红色区域,因为它是不相交的。您需要的向量数量与远处红色区域的数量相同

    第二,我们是否假设不同的红色数字既不相交也不共享边界?在下一个条款中,我同意


    第三,根据第2点中的假设,如果存在一个连续的红色图形,且该图形与两个轴(即光线)相交,则该象限将具有所有红色的外侧。要为所有象限确定这一点,应仅按给定顺序遍历所有(P)点。这需要线性时间并解决问题。

    我不确定我是否完全理解您的问题。。。如果你总是有相同的布局,你似乎可以说,“好吧,右上角和左下角总是与红色相邻,而不是与白色相邻”,然后到此为止。不过,这似乎太简单了,所以肯定还有更多。你能详细说明一下你有什么可用的信息吗?红色矩形可以是任何大小和任何地方。填充整个象限/在它们之间移动。基于给定的参考点(在本例中为中点),我需要构建内部矩形(在本例中由轴分割),并找出这些矩形中的哪些完全与所有SIE上的红色或蓝色碰撞。任何不接触蓝色或红色(接触空白)的区域都需要删除,剩余的蓝色区域将变为红色。我知道每个红色矩形的4个向量点。我妻子给出的很好的类比是蓝色是4个池,我需要找到有泄漏(左上和右下)轴的池永远不会泄漏,所以我只需要检查两侧。