How to find the smallest bounding box in a spread of 2D Vectors

Hey all.
Moving this topic from rio to the forum.

I am wrapping my head around a problem which might be easy to solve but my brain is not working anymore… :-) I am looking for the smallest bounding box around a given center position from a given spread of 2d vectors.

see patch:
SmallestBoundsQuestion.v4p (10.9 KB)

In Riot Tebjan came up with a VL based approach.

Approach.zip (6.5 KB)

Anyhow, it is not solving the boundings properly yet. The bounding box should always contain the center point.
Anybody can help?

thanks

1 Like

I guess all there’s left to do for tebjan’s solution to work is to also do a max/min check with the resulting two points PLUS the input coordinate itself

Yea, you got yourself a headache

Maybe find the smallest box containing three points in an OcTree and test there distances from each other? Use FromPointCloud to make a bounding box (in 3D) or use Rectangle (JoinPoints) (in 2D)?

Sounds like:
You need 4 boolean flags that tell you if you have already found a

• x that is smaller than CenterPoint.X. Let’s call this flag FoundMinX
• so you need FoundMaxX, FoundMinY, FoundMaxY as well

Algorithm:

• For each point in spread
• If (PointX < CenterPoint.X)
• else If (PointX > MinX) => MinX = PointX;

And now do this for the other flags as well…
This is a rather complicated solution, but should work, no?

After having a chat with David it turned out the actual problem is a bit more complex and also needs to hold a state and cover some more cases … the solution is not unique to a random pointcloud and depends on the interaction with the system and how those coordinates move. We were kind of close to a solution though last night

My “solution” above is probably wrong.

I think you need to precisely define what you need:

• (1) May the CenterPoint be on the border or not?
• (2) Define smallest. Is it about the area or the distance?

Let’s assume that the Centerpoint shall not be on the border. Then there are two possibilities to surround the Centerpoint

• (A) a point on left-top quadrant and a point on right-bottom quadrant OR
• (B) a point on left-bottom quadrant and a point on right-top quadrant.

Those quadrants are surrounding the Centerpoint.