на начало
На главную страницу
Форум   

Статья :: Конструктор CGraph

 

Конструктор CGraph

Если вы поняли, что происходит в методе Scale, то дальнейшие манипуляции с данными графика не вызовут у вас затруднений. Рассмотрим конструктор класса CGraph. В первом параметре по ссылке он получает контейнер с точками графика. Для того чтобы исключить копирование всех точек внешнего контейнера, мы инициализируем в заголовке конструктора свою собственную ссылку m_Points на входной контейнер. Кроме контейнера с точками графика пользователь объектом CGraph должен передать два текста, помечающих оси графика (sX, SY) и текст его заголовка (sTitle). В теле конструктора готовим два объекта типа TData для данных о разметке двух осей, создаем два шрифтовых объекта и инициализируем переменные управления параметрами линии графика. В данной реализации мы убрали диалог по изменению атрибутов пера, который вы можете сделать по своему вкусу.

Примечание

Следует отметить, что при изображении нескольких кривых функциональных зависимостей на одном графике необходимо дать пользователю возможность управлять стилем пера для каждой кривой в отдельности. В начале книги мы рассматривали, как это делается. Кроме того, следует учитывать существующие традиции изображения научной графики. Например, можно помечать кривые крестиками, ноликами и т. д. Это делается с помощью цикла прохода по точкам кривой и вывода в определенных местах растровых изображений, маркирующих кривую. Эти возможности ввиду необходимости описывать объекты классов Stingray Objective Grid мы также убрали из данной реализации.

//======= Конструктор класса CGraph

CGraph::CGraph (vector<CDPoint>S pt,

CString sTitle, CString sX, CString sY)

: m_Points(pt)

{

//===== Готовим данные, характеризующие оси координат

ZeroMemory(Sra_DataX, sizeof(TData));

ZeroMemory(sm_DataY, sizeof(TData));

m_DataX.bX = true;

m_DataY.bX = false;

m_sTitle = sTitle;

m_sX = sX;

m_sY = sY;

//======= Создаем шрифт для оцифровки осей

m_Font.CreateFont(16,0,0,0,100,0,0,0,DEFAULT_CHARSET,

OUT_RASTER_PRECIS,CLIP_DEFAULT_PRECIS,

DEFAULT_QUALITY,FF_DONTCARE,"Arial");

//======= Выясняем вертикальный размер буквы

TEXTMETRIC tm; CClientDC dc(0);

dc.SelectObject(Sm_Font);

dc.GetTextMetrics(Stm);

m_LH = tm.tmHeight;

//======= Создаем шрифт для вывода заголовка

m_TitleFont.CreateFont(24,О,О,0,100, 0, 0, 0,

DEFAULT_CHARSET, OUT_RASTER__PRECIS,

CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, FF_DONTCARE,

"Times New Roman");

//======= Задаем параметры пера

m_Clr = RGB(0,0,255); m_Width = 2;

}

 

Конструктор CGraph

страницы в данном разделе 
Урок 11. Решаем краевую задачу Решаем краевую задачу
Пример с матрицей МКР Формирование матрицы
Метод прогонки Разработка SDI-приложения
Класс окна для отображения графика Класс графика
Конструктор CGraph Преобразование координат
Отображение графика Вспомогательная функция
Диалог для исследования решений >  


Содержание сайта (выборка)
Apache
Протоколы TCP/IP (принципы, протоколы и архитектура)



PHP, PELR, JSP
PHP
JavaServer Pages (JSP)

Базы данных
Основы mysql
СУБД INFORMIX
СУБД POSTGRES
Основы проектирования реляционных баз данных

HTML, javascript
Спецификация HTML 4.01
Каскадные Таблицы Стилей, Уровень 2
Клиентский JavaScript. Справочник.
JavaScript руководство пользователя
Серверный JavaScript 1.4. Руководство по Использованию.

Паскаль, C, C++, C#
GCC (примеры)
FAQ Валентинa Озеровa DELPHI
C



 
© faq.pp.ru, справочник программиста