Создание меню Position, Edit и кнопок панели инструментов

ВВЕДЕНИЕ __________________________________________________________________ 3

РАСЧЕТ КООРДИНАТ ТОЧЕК МЕХАНИЗМА __________________________________________ 4

2.1. Исходные данные ______________________________________________________ 4

2.2. Расчет координаты точки B ____________________________________________ 5

2.3. Расчет координаты точки C ____________________________________________ 5

2.4. Расчет координаты точки D ____________________________________________ 6

2.5. Расчет координаты точки E ____________________________________________ 7

Этапы программирования ____________________________________________________ 8

3.1. Создание проекта “Motor” _____________________________________________ 8

3.2. Создание меню Position, Edit и кнопок панели инструментов ____________ 9

3.3. Ввод основных переменных ____________________________________________ 11

3.4. Функции для расчета координат точек C, D и E ________________________ 12

3.5. Функция вывода на экран текущих значений параметров _________________ 13

3.6. Функции отрисовки механизма _________________________________________ 14

3.7. Связывание кода со средствами пользовательского интерфейса __________ 19

3.8. Создание диалогового окна “Parameters” ______________________________ 20

3.9. Изменение параметров механизма с помощью диалогового окна ___________ 21

3.10. Диалоговое окно “About Motor” ______________________________________ 22

ЗАКЛЮЧЕНИЕ _______________________________________________________________ 23

4.1. Исходный текст программы ____________________________________________ 23

4.1.1. MotorView.h ____________________________________________________ 23

4.1.2. MotorView.cpp __________________________________________________ 24

4.1.3. DlgParameters.h ________________________________________________ 30

4.1.4. DlgParameters.cpp ______________________________________________ 31

4.2. Пояснение сносок ____________________________________________________ 33

1. Введение

Данная работа содержит программу, которая отображает на экране заданный механизм в каком-либо одном или сразу в нескольких положениях, также имеет возможность изменения размеров звеньев в разумных пределах, не нарушая целостности механизма, путем вызова специального диалогового окна.

После запуска приложения в окне появляется механизм с начальными параметрами. С помощью кнопок на панели инструментов, пользователь может поменять положение механизма (кнопки “previous” и “next”), вызвать диалоговое окно (кнопка “parameters”) с параметрами механизма.

Вызвав диалоговое окно, пользователь имеет возможность изменить в нем основные параметры механизма, а также задать число положений для одновременного их отображения на экране.

Пользователь может сворачивать окно или закрывать его другими окнами, после того, как окно приложения снова сделается активным, механизм автоматически отобразится с последними изменениями.

Расчет координат точек механизма

Расчет координат точек механизма на чертеже относительно стойки Создание меню Position, Edit и кнопок панели инструментов - student2.ru с координатами Создание меню Position, Edit и кнопок панели инструментов - student2.ru и угла наклона кривошипа Создание меню Position, Edit и кнопок панели инструментов - student2.ruСоздание меню Position, Edit и кнопок панели инструментов - student2.ru .

Исходные данные

Создание меню Position, Edit и кнопок панели инструментов - student2.ru Рис. 2.1. Схема механизма

Дано:

Создание меню Position, Edit и кнопок панели инструментов - student2.ru

Задание:

Написать программу на языке Visual C++, в которой бы осуществлялось отображение модели заданного механизма с возможностью: а) просмотра какого-либо одного положения, или сразу нескольких положений механизма, б) изменять посредством ручного ввода через диалоговое окно параметры механизма, в) просмотра какого-либо одного положения, или сразу нескольких положений механизма с измененными параметрами.

2.2. Расчет координаты точки Создание меню Position, Edit и кнопок панели инструментов - student2.ru

Создание меню Position, Edit и кнопок панели инструментов - student2.ru Рис. 2.2.

Формулы расчета координат:

Создание меню Position, Edit и кнопок панели инструментов - student2.ru ;

Создание меню Position, Edit и кнопок панели инструментов - student2.ru .

Создание меню Position, Edit и кнопок панели инструментов - student2.ru Рис. 2.3.

2.3. Расчет координат точки Создание меню Position, Edit и кнопок панели инструментов - student2.ru

Формулы для расчета координат:

Создание меню Position, Edit и кнопок панели инструментов - student2.ru ;

Найдем расстояние Создание меню Position, Edit и кнопок панели инструментов - student2.ru :

Создание меню Position, Edit и кнопок панели инструментов - student2.ru ;

Расчет Создание меню Position, Edit и кнопок панели инструментов - student2.ru и Создание меню Position, Edit и кнопок панели инструментов - student2.ru :

Создание меню Position, Edit и кнопок панели инструментов - student2.ru ;

Создание меню Position, Edit и кнопок панели инструментов - student2.ru .

2.4. Расчет координаты точки Создание меню Position, Edit и кнопок панели инструментов - student2.ru

Создание меню Position, Edit и кнопок панели инструментов - student2.ru Рис. 2.4.

Местоположение звена Создание меню Position, Edit и кнопок панели инструментов - student2.ru будет определяться углом Создание меню Position, Edit и кнопок панели инструментов - student2.ru , найдем этот угол:

Создание меню Position, Edit и кнопок панели инструментов - student2.ru .

Используя теорему синусов найдем углы Создание меню Position, Edit и кнопок панели инструментов - student2.ru и Создание меню Position, Edit и кнопок панели инструментов - student2.ru :

Создание меню Position, Edit и кнопок панели инструментов - student2.ru ,

Создание меню Position, Edit и кнопок панели инструментов - student2.ru ,

где Создание меню Position, Edit и кнопок панели инструментов - student2.ru , а Создание меню Position, Edit и кнопок панели инструментов - student2.ru находим из теоремы косинусов:

Создание меню Position, Edit и кнопок панели инструментов - student2.ru .

Формулы для расчета координат:

Создание меню Position, Edit и кнопок панели инструментов - student2.ru ;

Создание меню Position, Edit и кнопок панели инструментов - student2.ru .

2.5. Расчет координат точки Создание меню Position, Edit и кнопок панели инструментов - student2.ru

Создание меню Position, Edit и кнопок панели инструментов - student2.ru Рис. 2.5.

Расчет осуществляется следующим образом: т. к. точка Создание меню Position, Edit и кнопок панели инструментов - student2.ru перемещается по известной нам прямой, а координаты точки Создание меню Position, Edit и кнопок панели инструментов - student2.ru мы уже рассчитали, то будем перемещать точку Создание меню Position, Edit и кнопок панели инструментов - student2.ru от Создание меню Position, Edit и кнопок панели инструментов - student2.ru (вытекает из аксиомы о длине стороны треугольника, которая гласит, что длина стороны треугольника не может быть меньше модуля разности двух других его сторон), при этом измеряя расстояние Создание меню Position, Edit и кнопок панели инструментов - student2.ru , до тех пор, пока оно не будет равно Создание меню Position, Edit и кнопок панели инструментов - student2.ru , т. е. пока точка Создание меню Position, Edit и кнопок панели инструментов - student2.ru не сольется с искомой точкой E.

Программа расчета координат точки Создание меню Position, Edit и кнопок панели инструментов - student2.ru находится в пункте 3.4.

Этапы программирования

3.1. Создание проекта “Motor”

Для того чтобы начать программировать, нужно создать проект, для этого нужно выполнить следующие действия:

Создание меню Position, Edit и кнопок панели инструментов - student2.ru Рис. 3.1.1. Начало создания новой программы с помощью мастера AppWizard

1) Запустим Microsoft Visual C++ 6.0 и выполним команду FileàNew; открывается окно диалога New (рис. 3.1.1).

2) Выберем из списка строку MFC AppWizard (exe).

3) Введем в текстовом поле Project Name имя проекта (например, Motor).

Создание меню Position, Edit и кнопок панели инструментов - student2.ru Рис. 3.1.2. MFC AppWizard упрощает создание программ на Visual C++

4) Нажмем кнопку ОК, чтобы запустить мастер Visual C++ AppWizard (рис. 3.1.2).

Создание меню Position, Edit и кнопок панели инструментов - student2.ru Рис. 3.1.3. Окно New Project Information MFC AppWizard

5) Установим переключатель Multiple Document и нажмем кнопку Finish – откроется окно New Project Information (рис. 3.1.3).

6) Нажмем кнопку ОК, чтобы завершить создание проекта.

Создание меню Position, Edit и кнопок панели инструментов

Создание меню Position, Edit и кнопок панели инструментов - student2.ru Рис. 3.2.1. Построение Меню

1) Откроем редактор меню (см. рис. 3.2.1).

2) Удалим все команды меню, которые нам не понадобятся.

3) Включим в меня Edit команду Parameters. Создадим меню Position и включим в него три команды: Initial, Previous, Next.

4) Двойным щелчком мыши на панели откроется окно Menu Item Properties (рис. 3.2.2), в поле Caption введем название меню (Position).

Создание меню Position, Edit и кнопок панели инструментов - student2.ru Рис. 3.2.2. Добавление команды меню

5) По аналогии создаются команды подменю.

6) Теперь необходимо присвоить каждой новой команде меню свой идентификатор. Для этого опять вызовем Menu Item Properties, и в поле ID введем следующие идентификаторы:

Объект Свойство Установка
Menu ID Caption ID_PARAMETERS Parameters
Menu ID Caption ID_INITIAL Initial
Menu ID Caption ID_PREVIOUS Previous
Menu ID Caption ID_NEXT Next

7) Затем откроем панель инструментов программы (рис. 3.2.3).

Создание меню Position, Edit и кнопок панели инструментов - student2.ru Рис. 3.2.3. Построение панели инструментов

8) Удалим все кнопки, кроме About (при нажатии на нее, будет открываться диалоговое окно, в котором будет содержаться информация о программе), и создадим четыре новых кнопки, (каждый раз, когда вы рисуете что-нибудь на кнопке, редактор добавляет в конец панели новую пустую кнопку). Внешний вид кнопок изображен на рис. 3.2.3.

Создание меню Position, Edit и кнопок панели инструментов - student2.ru Рис. 3.2.4. Присвоение идентификаторов кнопкам панели инструментов

9) Далее необходимо связать кнопки с соответствующими командами меню, для этого дважды щелкните на кнопке и выберите идентификатор команды меню из списка ID диалогового окна Properties. Пример показан на рис. 3.2.4.

10) Итак, основные средства пользовательского интерфейса – команды меню и кнопки панели инструментов готовы. Теперь необходимо связать их с кодом программы (кнопка Parameters и соответствующая ей команда меню, будут вызывать диалоговое окно, которое мы создадим немного позже).

Ввод основных переменных

1) Начнем с объявления необходимых переменных. Для этого откроем файл MotorView.cpp.

2) Так как размеры звеньев большие, а нам нужно отобразить на экране монитора только модель механизма, то в программе примем за длины звеньев относительные единицы: Создание меню Position, Edit и кнопок панели инструментов - student2.ru , Создание меню Position, Edit и кнопок панели инструментов - student2.ru , Создание меню Position, Edit и кнопок панели инструментов - student2.ru , Создание меню Position, Edit и кнопок панели инструментов - student2.ru . Если умножить эти значения на коэффициент Создание меню Position, Edit и кнопок панели инструментов - student2.ru , то размерностью звеньев будет — пиксель. Для удобства расположения механизма в окне приложения, возьмем Создание меню Position, Edit и кнопок панели инструментов - student2.ru . Получается, что каждый сантиметр заданного механизма, на экране будет отображаться четырьмя пикселями.

3) Нам понадобятся число Создание меню Position, Edit и кнопок панели инструментов - student2.ru и коэффициент Создание меню Position, Edit и кнопок панели инструментов - student2.ru , введем их в начале файла с помощью директивы #defune, чтобы потом в программе вместо чисел подставлять их обозначения. Добавим следующую запись:

à #define PI 3.1415

à #define mn 4 // множитель

а заодно добавим библиотеку math.h, в которой содержатся математические функции (без них нам не обойтись):

à #include “math.h”

4) В конце файла добавляем следующий код:

à int Ox=200, Oy=250, // Координаты точки A

à Bx, By, // Координаты точки B

à Cx, Cy,

à Dx, Dy,

à Ex, Ey,

à AB = 6 * mn, // Длина звена AB

à BC = 35 * mn, // Длина звена BC

à BD = 3 * mn,

à DE = 32 * mn,

à ACx, ACy, // Координаты второй точки кулисы 1

à AEx, AEy;

à double

à a01 = 32.5 * PI/180, // Угол наклона кулисы 1 к горизонтали

à a02 = 327.5 * PI/180,

à a = 0 * PI/180, // Угол наклона кривошипа

à CBD = 75 * PI/180; // Угол между звеньями CB и BD

à POINT

à KC[4], // 4-е точки, по которым рисуется камень С

à KE[4];

à int dK=13; // 2*dK - диагональ камня

à double aK=PI/6; // 2*aK - угол между диагоналями камня

Здесь объявлены переменные, и одновременно им присвоены заданные значения размеров звеньев и углов, а также координаты точки Создание меню Position, Edit и кнопок панели инструментов - student2.ru (стойки).

Наши рекомендации