Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторные работы3 / KG3 / отчет / Опишем заголовки классов и методов

.docx
Скачиваний:
51
Добавлен:
02.05.2014
Размер:
18.63 Кб
Скачать

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

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 *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;

TRadioButton *RadioButtonA;

TRadioButton *RadioButtonB;

TRadioButton *RadioButtonC;

TRadioButton *RadioButtonM;

TRadioButton *RadioButtonN;

TTrackBar *TrackBar7;

TLabel *Label4;

TGroupBox *RGroupBox1;

TLabel *LabelPlane;

TLabel *LabelLine;

TLabel *LabelResult;

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

void __fastcall FormCreate(TObject *Sender);

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

void __fastcall CameraChange(TObject *Sender);

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

void __fastcall PointChange(TObject *Sender);

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

void __fastcall ProectionChange(TObject *Sender);

void __fastcall RadioButtonAClick(TObject *Sender);

void __fastcall RadioButtonBClick(TObject *Sender);

void __fastcall RadioButtonCClick(TObject *Sender);

void __fastcall RadioButtonMClick(TObject *Sender);

void __fastcall RadioButtonNClick(TObject *Sender);

void __fastcall TrackBar7Change(TObject *Sender);

class Tspatial

{

private:

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

TCanvas* canva;

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

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

//Координаты наблюдателя

point3D Camera;

point3D CameraReal;

//Точки чертежа

point3D T;

point3D M;

point3D N;

point3D A;

point3D B;

point3D C;

//Точки чертежа (координаты с трекбаров)

//point3D TReal;

point3D MReal;

point3D NReal;

point3D AReal;

point3D BReal;

point3D CReal;

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

point2D O;

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

float lengthOS, alpha;

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

float angleX;

float angleY;

//float angleZ;

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

point2D convert(point3D);

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

float radian(float alpha);

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

char proection;

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

char status;

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

bool ifLineOut();

//Скалярное произведение точек прямой на коэф. плоскости

float ScalM;

float ScalN;

//Нахождение коэффициентов плоскости

void findK();

//Коэффициенты плоскости

TKoef planeKoef;

float getT();

//скалярное проеизвдение точки на коэф. плоскости

float myltiplyPoint(point3D point, bool isCamera=false);

//Нахождение точки пересечения

void findCrossPoint();

//Узнаем тип плоскости

TPlaneType getPlaneType();

//Узнаем тип прямой

TLineType getLineType();

//Погрешность

double E;

//Есть ли пересечение прямых

bool isCrossLines;

//Плоскость-точка на прямой

bool isPlanePointOnLine;

//Плоскость является фронталью

bool isFrontal;

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();

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

void setA(int valueX, int valueY, int valueZ);

void setB(int valueX, int valueY, int valueZ);

void setC(int valueX, int valueY, int valueZ);

void setM(int valueX, int valueY, int valueZ);

void setN(int valueX, int valueY, int valueZ);

point3D getA();

point3D getB();

point3D getC();

point3D getM();

point3D getN();

void SetE(int value);

};

class Tcomplex

{

private:

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

TCanvas* canva;

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

point3D XBegin, XEnd, ZBegin, ZEnd;

//Точки чертежа

point3D T;

point3D M;

point3D N;

point3D A;

point3D B;

point3D C;

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

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();

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

void setA(int valueX, int valueY, int valueZ);

void setB(int valueX, int valueY, int valueZ);

void setC(int valueX, int valueY, int valueZ);

void setM(int valueX, int valueY, int valueZ);

void setN(int valueX, int valueY, int valueZ);

};