26 января 2021 года    
Вторник | 03:15    
Главная
 Новости
Базы данных
Безопасность PC
Всё о компьютерах
Графика и дизайн
Интернет-технологии
Мобильные устройства
Операционные системы
Программирование
Программы
Связь
Сети
 Документация
Статьи
Самоучители
 Общение
Форум







 

Вспомогательные функции

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

void CPolygon::MakeStar()

{

m_Points.clear();

//====== Вспомогательные переменные

double pi = 4. * atan(l.), // Углы

al = pi / 10.,

а2 = 3. * al,

//====== 2 характерные точки

xl = cos (al),

yl = sin(al),

x2 = cos(a2),

y2 = sin(a2);

//=== Вещественные (World) координаты углов звезды m_Points.push_back(CDPoint(0., 1.));

m_Points.push_back(CDPoint <-x2, -y2));

m_Points.push_back(CDPoint( xl, yl) ) ;

m_Points.push_back(CDPoint(-xl, yl)) ;

m_Points.push_back(CDPoint( x2, -y2));

//====== Габариты звезды

m_ptLT = CDPoint(-xl, 1.);

m_ptRB = CDPoint( xl,-y2);

//====== Генерация треугольника

void CPolygon::MakeTria() {

m_Points.clear();

double pi = 4. * atand(1.);

a = pi / 6.;

x = cos (a) ;

у = sin(a);

m_Points.push_back (CDPoint(0., 1.));

m_Points,push_back (CDPoint(-x, -y) );

m_Points.push_back (CDPoint( x, -y));

m_ptLT = CDPoint (-x, 1.) ;

m_ptRB = CDPoint ( x,-y);

//====== Генерация пятиугольника

void CPolygon::MakePent()

{

m_Points.clear ();

double pi = 4. * atan(l.),

al = pi / 10.,

a2 - 3. * al,

xl = cos(al),

yl = sin(al),

x2 = cos(a2),

y2 = sin(a2);

// Вещественные (World) координаты углов пятиугольника m_Points.push_back(CDPoint (0 ., 1.));

m_Points.push_back(CDPoint(-xl, yl));

m_Points.push_back(CDPoint(-x2, -y2));

m_Points.push_back(CDPoint( x2, -y2));

m_Points.push_back(CDPoint( xl, yl));

m_ptLT = CDPoint(-xl, 1.);

m_ptRB = CDPoint( xl,-y2);

 

Лента новостей


2006 (c) Copyright Hardline.ru