void CViewDlg::DrvLine(int x1, int y1,int x2, int y2)
{
CClientDC dc(this);
dc.SetMapMode(MM_HIMETRIC);
dc.MoveTo(m_Canvas.left+x1,m_Canvas.top+y1);
dc.LineTo(m_Canvas.left+x2,m_Canvas.top+y2);
}
Графика::Преобразование координат
Заранее спасибо!
Посмотрите MSDN про Map Modeы (режимы отображения). SetMapMode, SetViewportExtEx, SetWindowExtEx и т.д.
Цитата:
Originally posted by UserPro
Есть координаты в метрах (на местности) достаточно большие (больше 1000)! Нужно их как то сместить и масштабировать, что бы вывести на экран. Подскажите, плз, как можно рассчитаь коэффициенты? Или хотя бы где можно почитать что нибудь на эту тему.
Заранее спасибо!
Есть координаты в метрах (на местности) достаточно большие (больше 1000)! Нужно их как то сместить и масштабировать, что бы вывести на экран. Подскажите, плз, как можно рассчитаь коэффициенты? Или хотя бы где можно почитать что нибудь на эту тему.
Заранее спасибо!
Боже. Математика. 5 класс общеобразовательной школы !!!!
screen_x=x*screen_width/max_x
screen_y=y*screen_height/max_y
max_x, max_y - максимально возможная координаты
screen_width,screen_height - ширина и высота экрана
x, y - твои координаты
результат:
screen_x, screen_y - координаты на экране
Как сместить надо объяснять ?? Или сам вспомнишь про сложение и вычитание ???
А как правильно использовать SetMapMode? У меня есть функция, рисуюшая линию -
Код:
Со строкой dc.SetMapMode(MM_HIMETRIC) должно поменяться направление осей и масштаб, но линия пропадает из поля отображения либо вообще не отображается (не знаю).