Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы3 / Отчет 2-14-12-07.doc
Скачиваний:
98
Добавлен:
02.05.2014
Размер:
223.74 Кб
Скачать
  1. Руководство программиста.

Схема элементов интерфейса

Функциональная схема программы

Опишем заголовки классов и методов:

class Tspatial

{

private:

/* Канва для отрисовки */

TCanvas* canva;

/* Координаты осей координат */

point3D XBegin, XEnd, YBegin, YEnd, ZBegin, ZEnd;

/* Координаты точки и камеры */

point3D P, C;

/* Координаты точек проекций */

point3D P1, P2, P3, Px, Py, Pz;

/* Точка О - координаты центра */

point2D O;

/* Длина осей и угол между У и -Х */

float lengthOS, alpha;

/* Угол поворота вокруг OX */

float angleX;

float angleY;

/* Конвертируем точку для экранной системы координат */

point2D convert(point3D);

/* Переводим градусы в радианы */

float radian(float alpha);

/* тип проекции */

char proection;

/* текущее состояние: рисовать / камера внутри / выход за границы */

char status;

/* Проверка выхождения линий за пределы области отрисовки */

bool ifLineOut();

public:

/* Конструктор */

Tspatial(TCanvas* tempc);

/* Задаем базовые параметры */

void setParams(float oX, float oY, float temp_lengthos, float temp_alpha);

/* Вызываем все необходимые изменения */

void change();

/* Изменяем координаты камеры, подсчеты относительно угла поворота */

void changeAngle (int x, int y, int z);

/* Изменяем координаты точки */

void changePoint (int x, int y, int z);

/* Изменения типа проецирования */

void changeProection (char type);

/* Выполнение основных вычислений */

void calculate();

/* Отрисовка */

void draw();

};

class Tcomplex

{

private:

/* Канва для отрисовки */

TCanvas* canva;

/* Координаты осей координат */

point3D XBegin, XEnd, ZBegin, ZEnd;

/* Координаты точки и камеры */

point3D P, C;

/* Точки пароекций */

point2D P1,P2,P3,C1,C2,C3;

/* Точка О - координаты центра */

point2D O;

/* Перевод координат в экранную систему координат */

point2D convert (point3D point);

/* Длина осей */

float lengthOS;

public:

/* Конструктор */

Tcomplex (TCanvas* tempc);

/* Задаем базовые параметры */

void setParams(float oX, float oY, float temp_lengthos);

/* Вычисления */

void calculate();

/* Отрисовка */

void draw();

/* Изменение координат */

void change();

};

/* Класс операций над матрицами */

class TMatrix

{

private:

/* Ширина матрицы */

int shirina;

/* Высота матрицы */

int vysota;

/* Данные матрицы */

float data[SIZE_MAX][SIZE_MAX];

public:

/* Конструкторы */

TMatrix();

TMatrix(int sh,int vys);

TMatrix(int sh,int vys, float* values);

/* Изменение значения элемента [x][y] на value */

void SetData(int x,int y,float value);

/* Задание ширины матрицы */

void SetSizeX(int value);

/* Задание высоты матрицы */

void SetSizeY(int value);

/* Получить значение элемента [x][y] */

float GetData(int x,int y);

/* Получить ширину матрицы */

int GetSizeX();

/* Получить высоту матрицы */

int GetSizeY();

/* Оператор сложения матриц */

TMatrix operator +(TMatrix mat2);

/* Оператор вычитания матриц */

TMatrix operator -(TMatrix mat2);

/* Умножение матриц */

TMatrix operator *(TMatrix mat2);

/* Нахождение обратной матрицы */

TMatrix operator !();

/* Нахождение транспонированной матрицы */

TMatrix T(TMatrix mat);

};

/* Структура точки в трехмерной системе координат */

struct point3D

{

float x;

float y;

float z;

/* Умножение точки (вектора) на матрицу */

point3D operator *(TMatrix mat2);

};

/* Структура точки в экранной системе координат */

struct point2D

{

float x;

float y;

};

class TForm1 : public TForm

{

__published: // IDE-managed Components

TImage *Image1;//Image для отрисовки простр. чертежа

TImage *Image2;//Image для отрисовки комплекс. чертежа

TTrackBar *TrackBar1;//Ползунок Х точки

TTrackBar *TrackBar2;//Ползунок У точки

TTrackBar *TrackBar3;//Ползунок Z точки

TTrackBar *TrackBar4;//Ползунок Х камеры

TTrackBar *TrackBar5;//Ползунок У камеры

TTrackBar *TrackBar6;//Ползунок Z камеры

TRadioGroup *RadioGroup1; //Компонент выбора типа проекции

TRadioButton *RadioButton1;

TRadioButton *RadioButton2;

/* Все Labels */

TLabel *Label1;

TLabel *Label2;

TLabel *Label3;

TLabel *Label4;

TLabel *Label5;

TLabel *Label6;

TLabel *Label7;

TLabel *Label8;

TLabel *Label9;

TLabel *Label10;

TLabel *Label11;

TLabel *Label12;

TLabel *Label13;

TLabel *Label14;

TLabel *Label15;

TLabel *Label16;

TLabel *Label17;

TLabel *Label18;

TLabel *Label19;

TLabel *Label20;

/* Событие при открытии программы */

void __fastcall FormCreate(TObject *Sender);

/* Событие при изменении любого ползунка координат камеры */

void __fastcall CameraChange(TObject *Sender);

/* Событие при изменении любого ползунка координат точки */

void __fastcall PointChange(TObject *Sender);

/* Изменение типа проекции */

void __fastcall ProectionChange(TObject *Sender);

private: // User declarations

public: // User declarations

__fastcall TForm1(TComponent* Owner);

};

Соседние файлы в папке Лабораторные работы3