Преобразование
координат
В контейнере
точек графика, на который ссылается переменная m_Points, хранятся мировые координаты,
то есть числа, заданные в тех единицах измерения, которыми пользуется исследователь,
решающий дифференциальное уравнение. Это удобно с той точки зрения, что пользователь
видит и редактирует величины, к которым он привык. Для изображения графика на
экране следует преобразовать мировые координаты в логические, с которыми работает
подсистема GDI. На этот раз мы не будем пользоваться услугами Windows для преобразования
логических координат в физические. А используем тот факт, что в режиме преобразования
MMJTEXT, принятом по умолчанию, логические координаты соответствуют оконным,
физическим. Мы сами будем нормировать координаты точек графика, загоняя их в
диапазон (-0.5... 0.5), отслеживать изменения в размерах окна и пропорционально
изменять размеры графика. По умолчанию у нас выбраны пропорции 0.6 х 0.6, что
означает, размеры графика будут составлять 0.6 от размеров клиентской области
окна. Преобразование координат производят два метода MapToLogX и MapToLogY.
Каждый из них получает нормированную координату, а возвращает оконную. Изображение
центрируется в окне с помощью переменной cpoint m_Center, значение которой должно
корректироваться при каждой перерисовке. Размеры изображения зависят от текущих
размеров окна (переменная csize m_size;), которые также вычисляются при каждой
перерисовке:
int
CGraph::MapToLogX
(double d)
{
return
m_Center.x +
int (SCALE_X * m_Size.cx * d); }
int
CGraph::MapToLogY
(double d)
{
return
m_Center.y - int (SCALE_Y * m_Size.cy * d); }
//=======
Деструктор
CGraph::-CGraph(){}
Деструктор
не производит никаких действий, так как в классе CGraph мы не используем динамических
типов данных. Контейнер точек m_Points является всего лишь ссылкой на одноименный
контейнер, который хранится в классе CChildView. Там же и происходит освобождение
его памяти.
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий