Hi all! I am a software developer in Belfast. I have a problem to solve which requires either some really complicated code, or possibly some really clever/simple maths! I thought I would see if anyone could help me with this.

Here is some background to the problem. We are working with an EyeVis wall setup, see this link: eyevis UK ltd

The EyeVis wall can have any number of 'windows' displayed on the 'wall' at any time. We query the wall for its size dimensions, and then query it for a list of all the windows currently being displayed on the wall. This data looks something like this:

Wall Size:
  • Height: 1536
  • Width: 2048

So that is the size of the display we are working with, I don't know the exact co-ordiantes. All the windows displayed are within these co-ordinates. We now query the wall for a list of all its windows. We get the following back for each window currently being displayed.

  • Left: 20
  • Top: 0
  • Height: 800
  • Width: 500

The above data could point to any valid area within the walls dimensions.

What we need to do with this data is display a representation of the walls layout on our controllers screen. He will then select one of the windows to be displayed on a separate display.
The controllers screen is obviously much smaller than the eyevis wall. and the form which is displaying the wall layout is even smaller.

So basically I need to take all the window co-ordinates, together with the wall size, and scale this all down, while still retaining 'some' amount' of similarity between what the controller see's and what is on the wall. I say some because it does not need to be completely accurate, just enough detail that he can look at the eyevis wall and see the pattern on the screen.

I have tried to solve this with code, but I think maths is needed! Any advice or help regarding this is much appreciated!