Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VC Лекции PDF / VC 15 Лек Графика.pdf
Скачиваний:
43
Добавлен:
15.02.2015
Размер:
651.21 Кб
Скачать

Лекция 14

Работа с графикой

8

Пример использования диалогового окно выбора цвета

Ниже приведён код обработки события щелчка на кнопке IDC_COLOR в классе CcolDlg. void CColDlg :: OnColor ( )

{

//создание экземпляра класса окна выбора цвета; цвет по умолчанию - красный

CColorDialog dlg ( 0x000000FF ) ;

//вывод на экран окна выбора цвета

if ( dlg.DoModal ( ) == IDOK )

// если при закрытии окна пользователь нажал кнопку ОК

{

 

 

CString str ;

// текст сообщения

COLORREF color ;

// выбранный цвет

BYTE red , green , blue ;

// составляющие цвета

color = dlg.GetColor ();

// получение цвета, выбранного пользователем

red

= GetRValue ( color ) ;

// определение красной составляющей цвета

green = GetGValue ( color ) ;

// определение зелёной составляющей цвета

blue

= GetBValue ( color ) ;

// определение синей составляющей цвета

//Формирование строки текста сообщения, цвета выводятся в виде шестнадцатеричных чисел str.Format ( "Выбран цвет 0x%08X, содержащий:\n"

"\t0x%02X - красного\n" "\t0x%02X - зеленого\n"

"\t0x%02X - синего", color , red , green , blue ) ;

//вывод окна сообщений

MessageBox ( str , "Выбран цвет" ) ;

}

В результате работы этого фрагмента кода на экран будет выведено следующее окно сообщений.

МОДЕЛЬ ПЕРЬЕВОГО ПЛОТТЕРА

Большинство графических систем первого поколения были двухмерными. В них использовалась концепция модели перьевого плоттера. Такое устройство формирует изображение на бумаге за счет перемещения пера, закрепленного на двух подвижных направляющих. Одна направляющая перемещается в продольном направлении (вдоль оси у), а другая — в поперечном (вдоль оси х). Специальный механизм поднимает и опускает перо. В опущенном состоянии перо при перемещении оставляет след на бумаге — этот след и формирует изображение. В современных пакетах используется та же самая идея формирования на носителе следа подвижного пера, т.е. фактически воспроизведения процесса ручного вычерчивания с помощью карандаша. Пользователь при этом имеет дело с участком плоскости, ограниченным размерами планшета.

Поведение такой графической системы описывается двумя основными графическими функциями: MoveTo и LineTo.

При выполнении функции MoveTo перо приподымается и затем перемещается в точку с координатами (х, у), не оставляя следа на носителе. При выполнении функции LineTo перо опускается и затем перемещается по прямой из текущего положения в точку с заданными координатами (х, у), оставляя след на носителе. Если добавить к этим функциям еще и функции настройки (выбор пера подходящего цвета и толщины), то получим законченную двухмерную графическую систему. Ниже приведены прототипы этих функций.

Перемещение карандаша. Функция MoveTo

Назначение: перемещает карандаш в указанную позицию.

Выжол Ю.А.