none
преобразовать экранную систему координат в клиентскую, C# RRS feed

  • Вопрос

  • Здравствуйте,

    есть задача - построить несколько графиков по точкам, причем диапазон координат точек по оси X - от 4 до 4260,

    по оси Y - от 1800 до 2400.

    Проблема в том что я не понимаю как преобразовать экранную систему координат в нужную мне.

    как задать диапазон по горизонтали от 4 до 4260 и по вертикали от 1800 до 2400? 

    Программа пока что рисует в своих координатах и получается какой-то кошмар.

    Как преобразовать экранную ск? 

    17 декабря 2013 г. 18:46

Ответы

  • Выберите масштабный коэффициент, преобразующий реальные координаты в экранные. Умножайте на него каждую реальную координату перед выводом на экран. Также нужно иметь в виду, что экранная координата 0,0 соответствует левому верхнему углу окна.
    • Помечено в качестве ответа V_Ald 18 декабря 2013 г. 9:36
    18 декабря 2013 г. 8:36
  • Более сложный, но, в конце концов, удобный вариант - задействовать автоматическое преобразование координат объекта Graphics. Почитайте об этом здесь.
    • Помечено в качестве ответа V_Ald 18 декабря 2013 г. 18:05
    18 декабря 2013 г. 9:53

Все ответы

  • ну хоть какие-нибудь идеи? 
    18 декабря 2013 г. 8:17
  • Выберите масштабный коэффициент, преобразующий реальные координаты в экранные. Умножайте на него каждую реальную координату перед выводом на экран. Также нужно иметь в виду, что экранная координата 0,0 соответствует левому верхнему углу окна.
    • Помечено в качестве ответа V_Ald 18 декабря 2013 г. 9:36
    18 декабря 2013 г. 8:36
  • а как узнать сколько точек помещается на форме? можно узнать ширину и высоту формы, но как задать масштаб?
    18 декабря 2013 г. 9:16
  • Вы пропорцию в школе изучали? :) Предположим, ширина окна 500 точек. Нужно вместить в нее 2000 реальных единиц по X. Делим 500 на 2000, получаем масштабный коэффициент 0.25.
    18 декабря 2013 г. 9:40
  • Более сложный, но, в конце концов, удобный вариант - задействовать автоматическое преобразование координат объекта Graphics. Почитайте об этом здесь.
    • Помечено в качестве ответа V_Ald 18 декабря 2013 г. 18:05
    18 декабря 2013 г. 9:53