好的,故事是这样的:几周前我在一个披萨盒中发现了这个问题。它说如果你能在完成披萨之前解决这个问题,你就会被tripadviser聘用。虽然我不打算被录用,但这个问题引起了我的注意,破坏了我对披萨和晚餐的关注。我想出了一些东西,但有一些假设。这是问题:
假设我们知道 P、QR 和 S。有一条线连接每个矩形的中心。我们需要找出点 C 和 D。我不确定是否还有其他一些我们应该知道的变量来解决这个问题。

编辑
寻找程序化或伪代码解释 - 无需转到 maxthexchange。
有什么建议么 ?
一步一步做很简单:
L(t) = t * A + (1 - t) * (B - A)。只需求解此线性方程t*即可L(t*).y = Q.y得到C = L(t*)。用 L(t).y = Ry 做类似的事情来得到 D。您还可以使用t*求解 C 和 D 时获得的值来确定像重叠矩形这样的病理情况。
您实际上不需要找到点C并D找到距离。
我假设您已经知道矩形的坐标。计算中心点的坐标和边缘的长度很简单。
现在,想象一条垂直线穿过A,一条水平线穿过B。它们相交于一点,称之为X。另外,想象一条穿过 C 的垂直线,并将其与矩形的上边缘的交点称为RS- C'。
您可以简单地计算 的长度AX。但是 的长度AX是 的高度的RS一半 + 的高度的一半PQ(你都知道)+ 的长度CC'。
CC'所以现在你知道(调用它x)的长度了。
您还可以计算与from和 B 的坐标形成的角度(称为它n),因为您知道它是垂直的。ABCC'ACC'
因此,段 CD 的长度为x * cos(n)。