All about flooble | fun stuff | Get a free chatterbox | Free JavaScript | Avatars
 perplexus dot info

 Unit square overlap I (Posted on 2023-05-12)
The overlap of two unit squares is a rectangle with area 1/16.

Find the minimum distance between their centers.

 No Solution Yet Submitted by Jer No Rating

Comments: ( Back to comment list | You must be logged in to post comments.)
 solution | Comment 3 of 7 |
The intuitively obvious solution turned out to be wrong.

Since the shape of the overlap is a rectangle, no rotations other than 90 degrees are possible, so ignore rotations.  Other shapes would be much more complicated.  But given a rectangle, intuitively it seems the two squares are side by side then pushed together until they overlap by 1/16 of a unit.
The distance between the centers is 15/16 = 0.9375.  I expected this to be the answer.

If instead the 2 squares start oriented diagonally, touching only at one vertex, then one is moved at a 45 degree angle, the overlap will be a (1/4) by (1/4) square and the distance would be (3/4)*√2 =~ 1.06

So far, it intuitively seems that 15/16 is the answer.

But ...
Suppose the second square starts side by side with the first square; it is moved up a distance t then horizontally to make a rectangular overlap area = 1/16
Say the lower left corner of square 1 is at (0,0) and that of square 2 starts at (1,0).  After moving, that corner of square 2 is at ( (1 - 1/(16-16t)) , t )
or ( (15-16t)/(16-16t) , t)
The dist^2 = (225 - 480t + 256t^2)/(256 - 512t + 256t^2) + t^2
dist^2 = (225 - 480t + 256t^2 + 256^2 - 512^3 + 256t^4) / (16-16t)^2

Running the code below finds a minimum for distance. Since several early runs showed that t was about .06, instead of checking all t values from 0 to 1, I just checked up to .1.

Minimum distance found:  0.9354143466934853
(less than 15/16)
-----
def dist(t):
return  ((225 - 480*t + 256*t**2)/(256 - 512*t + 256*t**2) + t**2)**.5

mint = 1000
mind = 1000
for i in range(10000000):
t = i/10000000
d = dist(t)
if d < mind:
mind = d
mint = t

print(mint,mind)

min t value    min distance
0.06698729 0.9354143466934853

Edited on May 14, 2023, 12:48 pm
 Posted by Larry on 2023-05-12 15:06:00

 Search: Search body:
Forums (0)