Лабораторные работы3 / KG3 / отчет / Опишем заголовки классов и методов
.docxОпишем заголовки классов и методов:
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);
};