Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабораторная работа №6 - Программа4 / Germeyer
.cpp#pragma hdrstop
#include "Germeyer.h"
_fastcall Germeyer::Germeyer(int **matrix, int row, float F_q1, float F_q2){
index = 0;
q1 = F_q1;
q2 = F_q2;
float max=0, temp;
for(int i=0;i<row;i++) {
temp = min_i(matrix[i][0]*q1,matrix[i][1]*q2);
if(temp > max) {
max = temp;
index = i;
}
}
}
void Germeyer::DrawPoint(TChartSeries *srs,int **matrix, int row){
for(int i=0;i<row;i++) srs->AddXY(matrix[i][0],matrix[i][1]);
}
void Germeyer::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(0,0);
float line = max_i(max_x,max_y);
srs3->AddXY(2*line*q2, 2*line*q1);
float x_l = matrix[index][0];
float x0_l = 0;
float xe_l = 2*line*q2;
float ye_l = 2*line*q1;
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]);
}
}
float Germeyer::min_i(float a, float b) {
if(a<b) return a;
else return b;
}
float Germeyer::max_i(float a, float b) {
if(a>b) return a;
else return b;
}
#pragma package(smart_init)
Соседние файлы в папке Лабораторная работа №6 - Программа4