Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабораторная работа №6 - Программа / Unit1
.h//---------------------------------------------------------------------------
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <math.h>
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <Chart.hpp>
#include <ExtCtrls.hpp>
#include <Series.hpp>
#include <TeEngine.hpp>
#include <TeeProcs.hpp> 1
#include <ArrowCha.hpp>
//---------------------------------------------------------------------------
class GV{
public:
int **matrix;
int row;
GV(){
row = 0;
matrix = new int*[256];
for(int i=0;i<256;i++)
matrix[i] = new int[2];
}
};
class SVD {
public:
int index;
SVD(int **matrix, int row){
index = 0;
float max_0=0,max_1=0;
for(int i=0;i<row;i++) {
if(max_0 < matrix[i][0]) max_0 = matrix[i][0];
if(max_1 < matrix[i][1]) max_1 = matrix[i][1];
}
int **rem_matrix;
int min_j = 65000;
rem_matrix = new int*[256];
for(int i=0;i<256;i++)
rem_matrix[i] = new int[2];
for(int i=0;i<row;i++) {
rem_matrix[i][0] = max_0 - matrix[i][0];
rem_matrix[i][1] = max_1 - matrix[i][1];
int max = max_i(rem_matrix[i][0],rem_matrix[i][1]);
if(min_j > max) {
min_j = max;
index = i;
}
}
}
DrawPoint(TChartSeries *srs,int **matrix, int row)
{
for(int i=0;i<row;i++) srs->AddXY(matrix[i][0],matrix[i][1]);
}
DrawRectangle(TChartSeries *srs1,TChartSeries *srs2,TChartSeries *srs3,TChartSeries *srs4,int **matrix, int row)
{
float max_x=0, max_y=0, min_x = 65000, min_y = 65000;
for(int i=0;i<row;i++) {
if(max_x < matrix[i][0]) max_x = matrix[i][0];
if(max_y < matrix[i][1]) max_y = matrix[i][1];
if(min_x > matrix[i][0]) min_x = matrix[i][0];
if(min_y > matrix[i][1]) min_y = matrix[i][1];
}
srs1->AddXY(min_x, min_y);
srs1->AddXY(max_x, min_y);
srs1->AddXY(max_x, max_y);
srs2->AddXY(min_x, min_y);
srs2->AddXY(min_x, max_y);
srs2->AddXY(max_x, max_y);
srs3->AddXY(max_x - max_y,0);
srs3->AddXY(max_x, max_y);
float x_l = matrix[index][0];
float x0_l = max_x - max_y;
float xe_l = max_x;
float ye_l = max_y;
float y0_l = 0;
float y_l = (x_l - x0_l)/(xe_l-x0_l)*(ye_l - y0_l) + y0_l;
if(matrix[index][1] >= y_l) {
srs4->AddXY(matrix[index][0],max_y+1);
srs4->AddXY(matrix[index][0],y_l);
srs4->AddXY(max_x+1,y_l);
}
else {
x_l = (matrix[index][1] - y0_l)*(xe_l - x0_l)/(ye_l - y0_l)+ x0_l;
srs4->AddXY(x_l,max_y+1);
srs4->AddXY(x_l,matrix[index][1]);
srs4->AddXY(max_x+1,matrix[index][1]);
}
}
private:
int max_i(int a, int b) {
if(a>b) return a;
else return b;
}
};
class TForm1 : public TForm
{
__published: // IDE-managed Components
TPanel *Panel1;
TChart *Chart1;
TPointSeries *Series1;
TLineSeries *Series2;
TLineSeries *Series3;
TLineSeries *Series4;
TLineSeries *Series5;
TGroupBox *GroupBox1;
TLabel *Label1;
TLabel *Label2;
TLabel *Label3;
TLabel *Label4;
TLabel *Label5;
TLabel *Label6;
private: // User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner);
int LoadFile(String);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif