Уменьшить набор координат с высоким разрешением? - PullRequest
2 голосов
/ 27 января 2011

Вот некоторая предыстория проблемы. Мы работаем с настройкой стены EyeVis, см. Эту ссылку: http://www.eyevis.co.uk/

Стена EyeVis может иметь любое количество «окон», отображаемых на стене в любое время. Мы запрашиваем у стены размеры ее размеров, а затем запрашиваем список всех окон, которые в данный момент отображаются на стене. Это возвращается как набор координат следующим образом:

Слева, сверху, ширина, высота

Итак, на этом этапе у нас есть размер стены и координаты каждого окна, отображаемого внутри этой стены. Что нам нужно сделать, это отобразить представление макета стены на мониторе, который просматривает контроллер. Затем контроллер выберет одно из окон (с монитора), и это окно будет увеличено на стене EyeVis.

Я пробовал несколько вещей в надежде, что может быть простой способ добиться этого. У меня была одна идея:

  1. Создать панель в коде с размерами стены.
  2. Добавьте каждое окно на эту панель, используя координаты.
  3. Добавление главной панели в форму и закрепление панели

Я думал, что это автоматически изменит масштаб всех панелей внутри главной панели, и мы увидим макет, но стыковка во время выполнения не выглядит так, как я себе представлял?

Это код, который у меня был: (с использованием C #)

Panel mainPanel = new Panel();

mainPanel.Width = eyeVisWallWidth;
mainPanel.Height = eyeVisWallHeight;

foreach (Window thisWindow in windowList)
{
    Panel newWindow = new Panel();

    newWindow.Top = thisWindow.windowTop;
    newWindow.Width = thisWindow.windowWidth;
    newWindow.Height = thisWindow.windowHeight;
    newWindow.Left = thisWindow.windowLeft;

    Label newLabel = new Label();
    newLabel.Text = thisWindow.windowID.ToString() + ":" + newWindow.Height + ":" + newWindow.Width;
    newWindow.Controls.Add(newLabel);
    newWindow.BorderStyle = BorderStyle.FixedSingle;

    mainPanel.Controls.Add(newWindow);
}

this.panel1.Controls.Add(mainPanel);

mainPanel.Dock = DockStyle.Fill;
mainPanel.Anchor = AnchorStyles.None;

Так что теперь я начинаю думать, что это может быть решено с помощью математики, которая на самом деле не моя сильная сторона. У кого-нибудь есть совет или указатель на что-то, что может мне помочь в этом?

Любая помощь приветствуется! С уважением Адриан

1 Ответ

2 голосов
/ 07 ноября 2011

Забыл закрыть, мы только что закончили делением всех координат на общий множитель.

...