Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
2
Добавлен:
30.05.2020
Размер:
32.75 Кб
Скачать
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "MainUnit.h"
#include "Rectangl.h"
#include "Triangl.h"
#include "Ellips.h"
#include "EllipslUnit.h"
#include "RectanglUnit.h"
#include "gl.h"
#include "TrianglUnit.h"
#include "AboutUnit.h"
#include "CheckUnit.h"
int number=0;
int k=0,l=0,m=0;
int ListOfImage[15];
int CheckForTriangle(int,int,int,int,int,int);
int CheckForRectangl(int,int,int,int);
int CheckForEllips(int,int,int,int);
void DrawTriangle(int,int,int,int,int,int,TImage *);
void DrawRectangle(int,int,int,int,TImage *);
void DrawEllipse(int,int,int,int,TImage *);
void CreateTriangle(Triangle *,int);
void CreateRectangle(Rectangl *,int);
void CreateEllipse(Ellips *,int);
double AreasOfTriangle[15],AreasOfRectangle[15],AreasOfEllipse[15];
double MaxAreasOfTriangles=0,MaxAreasOfRectanles=0,MaxAreasOfEllipses=0,MaxAreas=0;

int a[15][6],b[15][4],c[15][4],d[15];
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
  MainImage->Canvas->Pen->Color=clWhite;
  MainImage->Canvas->Rectangle(0,0,580,340);
  for(int i=0;i<15;i++)
  {
    ListOfImage[i]=0;
    AreasOfTriangle[i]=0;
    AreasOfRectangle[i]=0;
    AreasOfEllipse[i]=0;
  }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::TriangleClick(TObject *Sender)
{
  TriangleCreateForm->Show();
}
void __fastcall TTriangleCreateForm::Button2Click(TObject *Sender)
{
  int x1,x2,x3,y1,y2,y3;
  if((TriangleCreateForm->Edit1->Text.Length()==0)||(TriangleCreateForm->Edit2->Text.Length()==0)||(TriangleCreateForm->Edit3->Text.Length()==0)||
  (TriangleCreateForm->Edit4->Text.Length()==0)||(TriangleCreateForm->Edit5->Text.Length()==0)||(TriangleCreateForm->Edit6->Text.Length()==0))
  {
    ShowMessage("Заповненні не всі поля");
    return;
  }
  x1=StrToInt(TriangleCreateForm->Edit1->Text);
  x2=StrToInt(TriangleCreateForm->Edit2->Text);
  x3=StrToInt(TriangleCreateForm->Edit3->Text);
  y1=StrToInt(TriangleCreateForm->Edit4->Text);
  y2=StrToInt(TriangleCreateForm->Edit5->Text);
  y3=StrToInt(TriangleCreateForm->Edit6->Text);
  if((x1>(10*(TriangleCreateForm->ChangeSize->ItemIndex+2)))||(y1>(10*(TriangleCreateForm->ChangeSize->ItemIndex+2)))||
  (x2>(10*(TriangleCreateForm->ChangeSize->ItemIndex+2)))||(y2>(10*(TriangleCreateForm->ChangeSize->ItemIndex+2)))||
  (x3>(10*(TriangleCreateForm->ChangeSize->ItemIndex+2)))||(y3>(10*(TriangleCreateForm->ChangeSize->ItemIndex+2))))
  {
    ShowMessage("Значення координат не входять в вибраний Вами діапазон.");
    return;
  }
  if(CheckForTriangle(x1,x2,x3,y1,y2,y3)==0)
  {
    ShowMessage("Не правельні значення координат.");
    return;
  }
  if(ListOfImage[0]==0)
  {
   DrawTriangle(x1,x2,x3,y1,y2,y3,Form1->Image1);
   Triangle *triangle0=new Triangle(x1,x2,x3,y1,y2,y3);
   CreateTriangle(triangle0,0);
   ListOfImage[0]=1;
   a[0][0]=x1; a[0][1]=x2; a[0][2]=x3; a[0][3]=y1; a[0][4]=y2; a[0][5]=y3; d[0]=1;
  }
  else
  if(ListOfImage[1]==0)
  {
   DrawTriangle(x1,x2,x3,y1,y2,y3,Form1->Image2);
   Triangle *triangle1=new Triangle(x1,x2,x3,y1,y2,y3);
   CreateTriangle(triangle1,1);
   ListOfImage[1]=1;
   a[1][0]=x1; a[1][1]=x2; a[1][2]=x3; a[1][3]=y1; a[1][4]=y2; a[1][5]=y3; d[1]=1;
  }
  else
  if(ListOfImage[2]==0)
  {
   DrawTriangle(x1,x2,x3,y1,y2,y3,Form1->Image3);
   Triangle *triangle2=new Triangle(x1,x2,x3,y1,y2,y3);
   CreateTriangle(triangle2,2);
   ListOfImage[2]=1;
   a[2][0]=x1; a[2][1]=x2; a[2][2]=x3; a[2][3]=y1; a[2][4]=y2; a[2][5]=y3; d[2]=1;
  }
  else
  if(ListOfImage[3]==0)
  {
   DrawTriangle(x1,x2,x3,y1,y2,y3,Form1->Image4);
   Triangle *triangle3=new Triangle(x1,x2,x3,y1,y2,y3);
   CreateTriangle(triangle3,3);
   ListOfImage[3]=1;
   a[3][0]=x1; a[3][1]=x2; a[3][2]=x3; a[3][3]=y1; a[3][4]=y2; a[3][5]=y3; d[3]=1;
  }
  else
  if(ListOfImage[4]==0)
  {
   DrawTriangle(x1,x2,x3,y1,y2,y3,Form1->Image5);
   Triangle *triangle4=new Triangle(x1,x2,x3,y1,y2,y3);
   CreateTriangle(triangle4,4);
   ListOfImage[4]=1;
   a[4][0]=x1; a[4][1]=x2; a[4][2]=x3; a[4][3]=y1; a[4][4]=y2; a[4][5]=y3; d[4]=1;
  }
  else
  if(ListOfImage[5]==0)
  {
   DrawTriangle(x1,x2,x3,y1,y2,y3,Form1->Image6);
   Triangle *triangle5=new Triangle(x1,x2,x3,y1,y2,y3);
   CreateTriangle(triangle5,5);
   ListOfImage[5]=1;
   a[5][0]=x1; a[5][1]=x2; a[5][2]=x3; a[5][3]=y1; a[5][4]=y2; a[5][5]=y3; d[5]=1;
  }
  else
  if(ListOfImage[6]==0)
  {
   DrawTriangle(x1,x2,x3,y1,y2,y3,Form1->Image7);
   Triangle *triangle6=new Triangle(x1,x2,x3,y1,y2,y3);
   CreateTriangle(triangle6,6);
   ListOfImage[6]=1;
   a[6][0]=x1; a[6][1]=x2; a[6][2]=x3; a[6][3]=y1; a[6][4]=y2; a[6][5]=y3; d[6]=1;
  }
  else
  if(ListOfImage[7]==0)
  {
   DrawTriangle(x1,x2,x3,y1,y2,y3,Form1->Image8);
   Triangle *triangle7=new Triangle(x1,x2,x3,y1,y2,y3);
   CreateTriangle(triangle7,7);
   ListOfImage[7]=1;
   a[7][0]=x1; a[7][1]=x2; a[7][2]=x3; a[7][3]=y1; a[7][4]=y2; a[7][5]=y3; d[7]=1;
  }
  else
  if(ListOfImage[8]==0)
  {
   DrawTriangle(x1,x2,x3,y1,y2,y3,Form1->Image9);
   Triangle *triangle8=new Triangle(x1,x2,x3,y1,y2,y3);
   CreateTriangle(triangle8,8);
   ListOfImage[8]=1;
   a[8][0]=x1; a[8][1]=x2; a[8][2]=x3; a[8][3]=y1; a[8][4]=y2; a[8][5]=y3; d[8]=1;
  }
  else
  if(ListOfImage[9]==0)
  {
   DrawTriangle(x1,x2,x3,y1,y2,y3,Form1->Image10);
   Triangle *triangle9=new Triangle(x1,x2,x3,y1,y2,y3);
   CreateTriangle(triangle9,9);
   ListOfImage[9]=1;
   a[9][0]=x1; a[9][1]=x2; a[9][2]=x3; a[9][3]=y1; a[9][4]=y2; a[9][5]=y3; d[9]=1;
  }
  else
  if(ListOfImage[10]==0)
  {
   DrawTriangle(x1,x2,x3,y1,y2,y3,Form1->Image11);
   Triangle *triangle10=new Triangle(x1,x2,x3,y1,y2,y3);
   CreateTriangle(triangle10,10);
   ListOfImage[10]=1;
   a[10][0]=x1; a[10][1]=x2; a[10][2]=x3; a[10][3]=y1; a[10][4]=y2; a[10][5]=y3; d[10]=1;
  }
  else
  if(ListOfImage[11]==0)
  {
   DrawTriangle(x1,x2,x3,y1,y2,y3,Form1->Image12);
   Triangle *triangle11=new Triangle(x1,x2,x3,y1,y2,y3);
   CreateTriangle(triangle11,11);
   ListOfImage[11]=1;
   a[11][0]=x1; a[11][1]=x2; a[11][2]=x3; a[11][3]=y1; a[11][4]=y2; a[11][5]=y3; d[11]=1;
  }
  else
  if(ListOfImage[12]==0)
  {
   DrawTriangle(x1,x2,x3,y1,y2,y3,Form1->Image13);
   Triangle *triangle12=new Triangle(x1,x2,x3,y1,y2,y3);
   CreateTriangle(triangle12,12);
   ListOfImage[12]=1;
   a[12][0]=x1; a[12][1]=x2; a[12][2]=x3; a[12][3]=y1; a[12][4]=y2; a[12][5]=y3; d[12]=1;
  }
  else
  if(ListOfImage[13]==0)
  {
   DrawTriangle(x1,x2,x3,y1,y2,y3,Form1->Image14);
   Triangle *triangle13=new Triangle(x1,x2,x3,y1,y2,y3);
   CreateTriangle(triangle13,13);
   ListOfImage[13]=1;
   a[13][0]=x1; a[13][1]=x2; a[13][2]=x3; a[13][3]=y1; a[13][4]=y2; a[13][5]=y3; d[13]=1;
  }
  else
  if(ListOfImage[14]==0)
  {
   DrawTriangle(x1,x2,x3,y1,y2,y3,Form1->Image15);
   Triangle *triangle14=new Triangle(x1,x2,x3,y1,y2,y3);
   CreateTriangle(triangle14,14);
   ListOfImage[14]=1;
   a[14][0]=x1; a[14][1]=x2; a[14][2]=x3; a[14][3]=y1; a[14][4]=y2; a[14][5]=y3; d[14]=1;
  }
  else  {ShowMessage("Закінчились фігури ..."); return;}
  TriangleCreateForm->Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N4Click(TObject *Sender)
{
  MaxAreasOfTriangles=0;
  for(int i=0;i<15;i++)
    if(AreasOfTriangle[i]>MaxAreasOfTriangles)
      MaxAreasOfTriangles=AreasOfTriangle[i];
  if(MaxAreasOfTriangles==0)
   ShowMessage("Трикутники відстутні.");
  else
    ShowMessage("Максимальна площа трикутника: "+FloatToStrF(MaxAreasOfTriangles,ffFixed,6,2)+".");
}
//---------------------------------------------------------------------------
int CheckForTriangle(int x1,int x2,int x3,int y1,int y2,int y3)
{
  if(((x1==x2)&&(x2==x3))||((y1==y2)&&(y2==y3)))
    return 0;
  else
    if(((x1-x2)==(x2-x3))&&((y1-y2)==(y2-y3)))
      return 0;
    else
      return 1;
}
//------------------------------------------------------------------------------
void __fastcall TForm1::RectangleClick(TObject *Sender)
{
   RectanglCreateForm->Show();
}
void __fastcall TRectanglCreateForm::Button2Click(TObject *Sender)
{
  int x1,x2,y1,y2;
  if((RectanglCreateForm->Edit1->Text.Length()==0)||(RectanglCreateForm->Edit2->Text.Length()==0)||
  (RectanglCreateForm->Edit3->Text.Length()==0)||(RectanglCreateForm->Edit4->Text.Length()==0))
  {
    ShowMessage("Заповненні не всі поля");
    return;
  }
  x1=StrToInt(Edit1->Text);
  x2=StrToInt(Edit2->Text);
  y1=StrToInt(Edit3->Text);
  y2=StrToInt(Edit4->Text);
  if((x1>(10*(RectanglCreateForm->ChangeSize->ItemIndex+2)))||(y1>(10*(RectanglCreateForm->ChangeSize->ItemIndex+2)))||
  (x2>(10*(RectanglCreateForm->ChangeSize->ItemIndex+2)))||(y2>(10*(RectanglCreateForm->ChangeSize->ItemIndex+2))))
  {
    ShowMessage("Значення координат не входять в вибраний Вами діапазон.");
    return;
  }
  if(CheckForRectangl(x1,y1,x2,y2)==0)
  {
    ShowMessage("Не правельні значення координат.");
    return;
  }
  if(ListOfImage[0]==0)
  {
   DrawRectangle(x1,x2,y1,y2,Form1->Image1);
   Rectangl *rectangle0=new Rectangl(x1,x2,y1,y2);
   CreateRectangle(rectangle0,0);
   ListOfImage[0]=1;
   b[0][0]=x1; b[0][1]=x2; b[0][2]=y1; b[0][3]=y2; d[0]=2;
  }
  else
  if(ListOfImage[1]==0)
  {
   DrawRectangle(x1,x2,y1,y2,Form1->Image2);
   Rectangl *rectangle1=new Rectangl(x1,x2,y1,y2);
   CreateRectangle(rectangle1,1);
   ListOfImage[1]=1;
   b[1][0]=x1; b[1][1]=x2; b[1][2]=y1; b[1][3]=y2; d[1]=2;
  }
  else
  if(ListOfImage[2]==0)
  {
   DrawRectangle(x1,x2,y1,y2,Form1->Image3);
   Rectangl *rectangle2=new Rectangl(x1,x2,y1,y2);
   CreateRectangle(rectangle2,2);
   ListOfImage[2]=1;
   b[2][0]=x1; b[2][1]=x2; b[2][2]=y1; b[2][3]=y2; d[2]=2;
  }
  else
  if(ListOfImage[3]==0)
  {
   DrawRectangle(x1,x2,y1,y2,Form1->Image4);
   Rectangl *rectangle3=new Rectangl(x1,x2,y1,y2);
   CreateRectangle(rectangle3,3);
   ListOfImage[3]=1;
   b[3][0]=x1; b[3][1]=x2; b[3][2]=y1; b[3][3]=y2; d[3]=2;
  }
  else
  if(ListOfImage[4]==0)
  {
   DrawRectangle(x1,x2,y1,y2,Form1->Image5);
   Rectangl *rectangle4=new Rectangl(x1,x2,y1,y2);
   CreateRectangle(rectangle4,4);
   ListOfImage[4]=1;
   b[4][0]=x1; b[4][1]=x2; b[4][2]=y1; b[4][3]=y2; d[4]=2;
  }
  else
  if(ListOfImage[5]==0)
  {
   DrawRectangle(x1,x2,y1,y2,Form1->Image6);
   Rectangl *rectangle5=new Rectangl(x1,x2,y1,y2);
   CreateRectangle(rectangle5,5);
   ListOfImage[5]=1;
   b[5][0]=x1; b[5][1]=x2; b[5][2]=y1; b[5][3]=y2; d[5]=2;
  }
  else
  if(ListOfImage[6]==0)
  {
   DrawRectangle(x1,x2,y1,y2,Form1->Image7);
   Rectangl *rectangle6=new Rectangl(x1,x2,y1,y2);
   CreateRectangle(rectangle6,6);
   ListOfImage[6]=1;
   b[6][0]=x1; b[6][1]=x2; b[6][2]=y1; b[6][3]=y2; d[6]=2;
  }
  else
  if(ListOfImage[7]==0)
  {
   DrawRectangle(x1,x2,y1,y2,Form1->Image8);
   Rectangl *rectangle7=new Rectangl(x1,x2,y1,y2);
   CreateRectangle(rectangle7,7);
   ListOfImage[7]=1;
   b[7][0]=x1; b[7][1]=x2; b[7][2]=y1; b[7][3]=y2; d[7]=2;
  }
  else
  if(ListOfImage[8]==0)
  {
   DrawRectangle(x1,x2,y1,y2,Form1->Image9);
   Rectangl *rectangle8=new Rectangl(x1,x2,y1,y2);
   CreateRectangle(rectangle8,8);
   ListOfImage[8]=1;
   b[9][0]=x1; b[8][1]=x2; b[8][2]=y1; b[8][3]=y2; d[8]=2;
  }
  else
  if(ListOfImage[9]==0)
  {
   DrawRectangle(x1,x2,y1,y2,Form1->Image10);
   Rectangl *rectangle9=new Rectangl(x1,x2,y1,y2);
   CreateRectangle(rectangle9,9);
   ListOfImage[9]=1;
   b[9][0]=x1; b[9][1]=x2; b[9][2]=y1; b[9][3]=y2; d[9]=2;
  }
  else
  if(ListOfImage[10]==0)
  {
   DrawRectangle(x1,x2,y1,y2,Form1->Image11);
   Rectangl *rectangle10=new Rectangl(x1,x2,y1,y2);
   CreateRectangle(rectangle10,10);
   ListOfImage[10]=1;
   b[10][0]=x1; b[10][1]=x2; b[10][2]=y1; b[10][3]=y2; d[10]=2;
  }
  else
  if(ListOfImage[11]==0)
  {
   DrawRectangle(x1,x2,y1,y2,Form1->Image12);
   Rectangl *rectangle11=new Rectangl(x1,x2,y1,y2);
   CreateRectangle(rectangle11,11);
   ListOfImage[11]=1;
   b[11][0]=x1; b[11][1]=x2; b[11][2]=y1; b[11][3]=y2; d[11]=2;
  }
  else
  if(ListOfImage[12]==0)
  {
   DrawRectangle(x1,x2,y1,y2,Form1->Image13);
   Rectangl *rectangle12=new Rectangl(x1,x2,y1,y2);
   CreateRectangle(rectangle12,12);
   ListOfImage[12]=1;
   b[12][0]=x1; b[12][1]=x2; b[12][2]=y1; b[12][3]=y2; d[12]=2;
  }
  else
  if(ListOfImage[13]==0)
  {
   DrawRectangle(x1,x2,y1,y2,Form1->Image14);
   Rectangl *rectangle13=new Rectangl(x1,x2,y1,y2);
   CreateRectangle(rectangle13,13);
   ListOfImage[13]=1;
   b[13][0]=x1; b[13][1]=x2; b[13][2]=y1; b[13][3]=y2; d[13]=2;
  }
  else
  if(ListOfImage[14]==0)
  {
   DrawRectangle(x1,x2,y1,y2,Form1->Image15);
   Rectangl *rectangle14=new Rectangl(x1,x2,y1,y2);
   CreateRectangle(rectangle14,14);
   ListOfImage[14]=1;
   b[14][0]=x1; b[14][1]=x2; b[14][2]=y1; b[14][3]=y2; d[14]=2;
  }
  else  {ShowMessage("Закінчились фігури ..."); return;}
  RectanglCreateForm->Close();
}
//---------------------------------------------------------------------------
int CheckForRectangl(int x1,int y1,int x2,int y2)
{
  if(x1==x2 || y1==y2)
    return 0;
  else
    return 1;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::N5Click(TObject *Sender)
{
  MaxAreasOfRectanles=0;
  for(int i=0;i<15;i++)
    if(AreasOfRectangle[i]>MaxAreasOfRectanles)
      MaxAreasOfRectanles=AreasOfRectangle[i];
  if(MaxAreasOfRectanles==0)
   ShowMessage("Прямокутники відстутні.");
  else
    ShowMessage("Максимальна площа прямокутника: "+FloatToStrF(MaxAreasOfRectanles,ffFixed,6,2)+".");
}
//---------------------------------------------------------------------------

void __fastcall TForm1::EllipseClick(TObject *Sender)
{
    EllipsCreateForm->Show();
}
//---------------------------------------------------------------------------
void __fastcall TEllipsCreateForm::Button2Click(TObject *Sender)
{
  int x1,x2,y1,y2;
  if((EllipsCreateForm->Edit1->Text.Length()==0)||(EllipsCreateForm->Edit2->Text.Length()==0)||
  (EllipsCreateForm->Edit3->Text.Length()==0)||(EllipsCreateForm->Edit4->Text.Length()==0))
  {
    ShowMessage("Заповненні не всі поля");
    return;
  }
  x1=StrToFloat(Edit1->Text);
  x2=StrToFloat(Edit2->Text);
  y1=StrToFloat(Edit3->Text);
  y2=StrToFloat(Edit4->Text);
  if((x1>(10*(EllipsCreateForm->ChangeSize->ItemIndex+2)))||(y1>(10*(EllipsCreateForm->ChangeSize->ItemIndex+2)))||
  (x2>(10*(EllipsCreateForm->ChangeSize->ItemIndex+2)))||(y2>(10*(EllipsCreateForm->ChangeSize->ItemIndex+2))))
  {
    ShowMessage("Значення координат не входять в вибраний Вами діапазон.");
    return;
  }
  if(CheckForEllips(x1,y1,x2,y2)==0)
  {
    ShowMessage("Не правельні значення координат.");
    return;
  }
  if(ListOfImage[0]==0)
  {
   DrawEllipse(x1,x2,y1,y2,Form1->Image1);
   Ellips *ellips0=new Ellips(x1,x2,y1,y2);
   CreateEllipse(ellips0,0);
   ListOfImage[0]=1;
   c[0][0]=x1; c[0][1]=x2; c[0][2]=y1; c[0][3]=y2; d[0]=3;
  }
  else
  if(ListOfImage[1]==0)
  {
   DrawEllipse(x1,x2,y1,y2,Form1->Image2);
   Ellips *ellips1=new Ellips(x1,x2,y1,y2);
   CreateEllipse(ellips1,1);
   ListOfImage[1]=1;
   c[1][0]=x1; c[1][1]=x2; c[1][2]=y1; c[1][3]=y2; d[1]=3;
  }
  else
  if(ListOfImage[2]==0)
  {
   Ellips *ellips2=new Ellips(x1,x2,y1,y2);
   CreateEllipse(ellips2,2);
   DrawEllipse(x1,x2,y1,y2,Form1->Image3);
   ListOfImage[2]=1;
   c[2][0]=x1; c[2][1]=x2; c[2][2]=y1; c[2][3]=y2; d[2]=3;
  }
  else
  if(ListOfImage[3]==0)
  {
   DrawEllipse(x1,x2,y1,y2,Form1->Image4);
   Ellips *ellips3=new Ellips(x1,x2,y1,y2);
   CreateEllipse(ellips3,3);
   ListOfImage[3]=1;
   c[3][0]=x1; c[3][1]=x2; c[3][2]=y1; c[3][3]=y2; d[3]=3;
  }
  else
  if(ListOfImage[4]==0)
  {
   DrawEllipse(x1,x2,y1,y2,Form1->Image5);
   Ellips *ellips4=new Ellips(x1,x2,y1,y2);
   CreateEllipse(ellips4,4);
   ListOfImage[4]=1;
   c[4][0]=x1; c[4][1]=x2; c[4][2]=y1; c[4][3]=y2; d[4]=3;
  }
  else
  if(ListOfImage[5]==0)
  {
   DrawEllipse(x1,x2,y1,y2,Form1->Image6);
   Ellips *ellips5=new Ellips(x1,x2,y1,y2);
   CreateEllipse(ellips5,5);
   ListOfImage[5]=1;
   c[5][0]=x1; c[5][1]=x2; c[5][2]=y1; c[5][3]=y2; d[5]=3;
  }
  else
  if(ListOfImage[6]==0)
  {
   DrawEllipse(x1,x2,y1,y2,Form1->Image7);
   Ellips *ellips6=new Ellips(x1,x2,y1,y2);
   CreateEllipse(ellips6,6);
   ListOfImage[6]=1;
   c[6][0]=x1; c[6][1]=x2; c[6][2]=y1; c[6][3]=y2; d[6]=3;
  }
  else
  if(ListOfImage[7]==0)
  {
   DrawEllipse(x1,x2,y1,y2,Form1->Image8);
   Ellips *ellips7=new Ellips(x1,x2,y1,y2);
   CreateEllipse(ellips7,7);
   ListOfImage[7]=1;
   c[7][0]=x1; c[7][1]=x2; c[7][2]=y1; c[7][3]=y2; d[7]=3;
  }
  else
  if(ListOfImage[8]==0)
  {
   DrawEllipse(x1,x2,y1,y2,Form1->Image9);
   Ellips *ellips8=new Ellips(x1,x2,y1,y2);
   CreateEllipse(ellips8,8);
   ListOfImage[8]=1;
   c[8][0]=x1; c[8][1]=x2; c[8][2]=y1; c[8][3]=y2; d[8]=3;
  }
  else
  if(ListOfImage[9]==0)
  {
   DrawEllipse(x1,x2,y1,y2,Form1->Image10);
   Ellips *ellips9=new Ellips(x1,x2,y1,y2);
   CreateEllipse(ellips9,9);
   ListOfImage[9]=1;
   c[9][0]=x1; c[9][1]=x2; c[9][2]=y1; c[9][3]=y2; d[9]=3;
  }
  else
  if(ListOfImage[10]==0)
  {
   DrawEllipse(x1,x2,y1,y2,Form1->Image11);
   Ellips *ellips10=new Ellips(x1,x2,y1,y2);
   CreateEllipse(ellips10,10);
   ListOfImage[10]=1;
   c[10][0]=x1; c[10][1]=x2; c[10][2]=y1; c[10][3]=y2; d[10]=3;
  }
  else
  if(ListOfImage[11]==0)
  {
   DrawEllipse(x1,x2,y1,y2,Form1->Image12);
   Ellips *ellips11=new Ellips(x1,x2,y1,y2);
   CreateEllipse(ellips11,11);
   ListOfImage[11]=1;
   c[11][0]=x1; c[11][1]=x2; c[11][2]=y1; c[11][3]=y2; d[11]=3;
  }
  else
  if(ListOfImage[12]==0)
  {
   DrawEllipse(x1,x2,y1,y2,Form1->Image13);
   Ellips *ellips12=new Ellips(x1,x2,y1,y2);
   CreateEllipse(ellips12,12);
   ListOfImage[12]=1;
   c[12][0]=x1; c[12][1]=x2; c[12][2]=y1; c[12][3]=y2; d[12]=3;
  }
  else
  if(ListOfImage[13]==0)
  {
   DrawEllipse(x1,x2,y1,y2,Form1->Image14);
   Ellips *ellips13=new Ellips(x1,x2,y1,y2);
   CreateEllipse(ellips13,13);
   ListOfImage[13]=1;
   c[13][0]=x1; c[13][1]=x2; c[13][2]=y1; c[13][3]=y2; d[13]=3;
  }
  else
  if(ListOfImage[14]==0)
  {
   DrawEllipse(x1,x2,y1,y2,Form1->Image15);
   Ellips *ellips14=new Ellips(x1,x2,y1,y2);
   CreateEllipse(ellips14,14);
   ListOfImage[14]=1;
   c[14][0]=x1; c[14][1]=x2; c[14][2]=y1; c[14][3]=y2; d[14]=3;
  }
  else  {ShowMessage("Закінчились фігури ..."); return;}
  EllipsCreateForm->Close();
}
//-------------------------------------------------------------------
int CheckForEllips(int x1,int y1,int x2,int y2)
{
  if(x1==x2 || y1==y2)
    return 0;
  else
    return 1;
}
//-----------------------------------------------------------------
void __fastcall TForm1::N6Click(TObject *Sender)
{
  MaxAreasOfEllipses=0;
  for(int i=0;i<15;i++)
    if(AreasOfEllipse[i]>MaxAreasOfEllipses)
      MaxAreasOfEllipses=AreasOfEllipse[i];
  if(MaxAreasOfEllipses==0)
   ShowMessage("Еліпси відстутні.");
  else
    ShowMessage("Максимальна площа еліпса: "+FloatToStrF(MaxAreasOfEllipses,ffFixed,6,2)+".");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N3Click(TObject *Sender)
{
  MaxAreasOfRectanles=0;
  for(int i=0;i<15;i++)
    if(AreasOfRectangle[i]>MaxAreasOfRectanles)
      MaxAreasOfRectanles=AreasOfRectangle[i];
  MaxAreasOfTriangles=0;
  for(int i=0;i<15;i++)
    if(AreasOfTriangle[i]>MaxAreasOfTriangles)
      MaxAreasOfTriangles=AreasOfTriangle[i];
  MaxAreasOfEllipses=0;
  for(int i=0;i<15;i++)
    if(AreasOfEllipse[i]>MaxAreasOfEllipses)
      MaxAreasOfEllipses=AreasOfEllipse[i];
  if((MaxAreasOfRectanles==0)&&(MaxAreasOfTriangles==0)&&(MaxAreasOfEllipses==0))
   ShowMessage("Ви не створили фігури.");
  else
  if(MaxAreasOfEllipses>MaxAreasOfTriangles && MaxAreasOfEllipses>MaxAreasOfRectanles)
    ShowMessage("Максимальна площа серед фігур у еліпса: "+FloatToStrF(MaxAreasOfEllipses,ffFixed,6,2)+".");
    else if (MaxAreasOfEllipses<MaxAreasOfTriangles && MaxAreasOfTriangles>MaxAreasOfRectanles)
         ShowMessage("Максимальна площа серед фігур у трикутника: "+FloatToStrF(MaxAreasOfTriangles,ffFixed,6,2)+".");
             else     ShowMessage("Максимальна площа серед фігур у прямокутника: "+FloatToStrF(MaxAreasOfRectanles,ffFixed,6,2)+".");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image1Click(TObject *Sender)
{
   if(ListOfImage[0]==1){
     number=1;
   if(k==0)
     k=1;
   else
     {l=1;m=1;}}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image10Click(TObject *Sender)
{
if(ListOfImage[9]==1){
  number=10;
   if(k==0)
     k=10;
   else
     {l=10;m=1;}}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image11Click(TObject *Sender)
{
if(ListOfImage[10]==1){
  number=11;
   if(k==0)
     k=11;
   else
     {l=11;m=1;}}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image12Click(TObject *Sender)
{
if(ListOfImage[11]==1){
  number=12;
   if(k==0)
     k=12;
   else
     {l=12;m=1;}}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image13Click(TObject *Sender)
{
if(ListOfImage[12]==1){
  number=13;
   if(k==0)
     k=13;
   else
     {l=13;m=1;}}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image14Click(TObject *Sender)
{
if(ListOfImage[13]==1){
  number=14;
   if(k==0)
     k=14;
   else
     {l=14;m=1;}}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image2Click(TObject *Sender)
{
if(ListOfImage[1]==1){
  number=2;
   if(k==0)
     k=2;
   else
     {l=2;m=1;}}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image15Click(TObject *Sender)
{
if(ListOfImage[14]==1){
  number=15;
   if(k==0)
     k=15;
   else
     {l=15;m=1;}}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image3Click(TObject *Sender)
{
if(ListOfImage[2]==1){
  number=3;
   if(k==0)
     k=3;
   else
     {l=3;m=1;}}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image4Click(TObject *Sender)
{
if(ListOfImage[3]==1){
  number=4;
   if(k==0)
     k=4;
   else
     {l=4;m=1;}}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image5Click(TObject *Sender)
{
if(ListOfImage[4]==1){
  number=5;
   if(k==0)
     k=5;
   else
     {l=5;m=1;}}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image6Click(TObject *Sender)
{
if(ListOfImage[5]==1){
  number=6;
   if(k==0)
     k=6;
   else
     {l=6;m=1;}}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image7Click(TObject *Sender)
{
if(ListOfImage[6]==1){
  number=7;
   if(k==0)
     k=7;
   else
     {l=7;m=1;}}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image8Click(TObject *Sender)
{
if(ListOfImage[7]==1){
  number=8;
   if(k==0)
     k=8;
   else
     {l=8;m=1;}}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image9Click(TObject *Sender)
{
if(ListOfImage[8]==1){
  number=9;
   if(k==0)
     k=9;
   else
     {l=9;m=1;}}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::DeleteShapeClick(TObject *Sender)
{
  if(number==0)
    ShowMessage("Ви не вибрали фігуру.");
  else
  { ListOfImage[number-1]=0;
    switch(number)
    {
      case 1: Image1->Canvas->Pen->Color=clWhite;Image1->Canvas->Rectangle(0,0,100,100); AreasOfTriangle[number-1]=0;AreasOfRectangle[number-1]=0;AreasOfEllipse[number-1]=0;break;
      case 2: Image2->Canvas->Pen->Color=clWhite;Image2->Canvas->Rectangle(0,0,100,100); AreasOfTriangle[number-1]=0;AreasOfRectangle[number-1]=0;AreasOfEllipse[number-1]=0;break;
      case 3: Image3->Canvas->Pen->Color=clWhite;Image3->Canvas->Rectangle(0,0,100,100); AreasOfTriangle[number-1]=0;AreasOfRectangle[number-1]=0;AreasOfEllipse[number-1]=0;break;
      case 4: Image4->Canvas->Pen->Color=clWhite;Image4->Canvas->Rectangle(0,0,100,100); AreasOfTriangle[number-1]=0;AreasOfRectangle[number-1]=0;AreasOfEllipse[number-1]=0;break;
      case 5: Image5->Canvas->Pen->Color=clWhite;Image5->Canvas->Rectangle(0,0,100,100); AreasOfTriangle[number-1]=0;AreasOfRectangle[number-1]=0;AreasOfEllipse[number-1]=0;break;
      case 6: Image6->Canvas->Pen->Color=clWhite;Image6->Canvas->Rectangle(0,0,100,100); AreasOfTriangle[number-1]=0;AreasOfRectangle[number-1]=0;AreasOfEllipse[number-1]=0;break;
      case 7: Image7->Canvas->Pen->Color=clWhite;Image7->Canvas->Rectangle(0,0,100,100); AreasOfTriangle[number-1]=0;AreasOfRectangle[number-1]=0;AreasOfEllipse[number-1]=0;break;
      case 8: Image8->Canvas->Pen->Color=clWhite;Image8->Canvas->Rectangle(0,0,100,100); AreasOfTriangle[number-1]=0;AreasOfRectangle[number-1]=0;AreasOfEllipse[number-1]=0;break;
      case 9: Image9->Canvas->Pen->Color=clWhite;Image9->Canvas->Rectangle(0,0,100,100); AreasOfTriangle[number-1]=0;AreasOfRectangle[number-1]=0;AreasOfEllipse[number-1]=0;break;
      case 10: Image10->Canvas->Pen->Color=clWhite;Image10->Canvas->Rectangle(0,0,100,100); AreasOfTriangle[number-1]=0;AreasOfRectangle[number-1]=0;AreasOfEllipse[number-1]=0;break;
      case 11: Image11->Canvas->Pen->Color=clWhite;Image11->Canvas->Rectangle(0,0,100,100); AreasOfTriangle[number-1]=0;AreasOfRectangle[number-1]=0;AreasOfEllipse[number-1]=0;break;
      case 12: Image12->Canvas->Pen->Color=clWhite;Image12->Canvas->Rectangle(0,0,100,100); AreasOfTriangle[number-1]=0;AreasOfRectangle[number-1]=0;AreasOfEllipse[number-1]=0;break;
      case 13: Image13->Canvas->Pen->Color=clWhite;Image13->Canvas->Rectangle(0,0,100,100); AreasOfTriangle[number-1]=0;AreasOfRectangle[number-1]=0;AreasOfEllipse[number-1]=0;break;
      case 14: Image14->Canvas->Pen->Color=clWhite;Image14->Canvas->Rectangle(0,0,100,100); AreasOfTriangle[number-1]=0;AreasOfRectangle[number-1]=0;AreasOfEllipse[number-1]=0;break;
      case 15: Image15->Canvas->Pen->Color=clWhite;Image15->Canvas->Rectangle(0,0,100,100); AreasOfTriangle[number-1]=0;AreasOfRectangle[number-1]=0;AreasOfEllipse[number-1]=0;break;
    }
    number=0;
  }
}
//---------------------------------------------------------------------------
void DrawTriangle(int x1,int x2,int x3,int y1, int y2, int y3, TImage *image)
{
  y1=10*(TriangleCreateForm->ChangeSize->ItemIndex+2)-y1; y2=10*(TriangleCreateForm->ChangeSize->ItemIndex+2)-y2; y3=10*(TriangleCreateForm->ChangeSize->ItemIndex+2)-y3;
  x1*=2; x2*=2; x3*=2; y1*=2; y2*=2; y3*=2;
  image->Canvas->Pen->Color=clBlack; image->Canvas->MoveTo(x1,y1); image->Canvas->LineTo(x2,y2); image->Canvas->LineTo(x3,y3); image->Canvas->LineTo(x1,y1);
}
void DrawRectangle(int x1,int x2,int y1,int y2,TImage *image)
{
  y1=10*(RectanglCreateForm->ChangeSize->ItemIndex+2)-y1; y2=10*(RectanglCreateForm->ChangeSize->ItemIndex+2)-y2;
  x1*=2; x2*=2; y1*=2; y2*=2;
  image->Canvas->Pen->Color=clBlue; image->Canvas->MoveTo(x1,y1); image->Canvas->LineTo(x2,y1); image->Canvas->LineTo(x2,y2); image->Canvas->LineTo(x1,y2); image->Canvas->LineTo(x1,y1);
}
void DrawEllipse(int x1,int x2,int y1,int y2,TImage *image)
{
 y1=10*(EllipsCreateForm->ChangeSize->ItemIndex+2)-y1;y2=10*(EllipsCreateForm->ChangeSize->ItemIndex+2)-y2;
 x1*=2; x2*=2; y1*=2; y2*=2;
 image->Canvas->Pen->Color=clGreen; image->Canvas->Arc(x1,y1,x2,y2,0,0,0,0);
}
void CreateTriangle(Triangle *triangle,int n)
{
  double s=triangle->GetArea();
  AreasOfTriangle[n]=s;
}
void CreateRectangle(Rectangl *rectangl,int n)
{
  double s=rectangl->GetArea();
  AreasOfRectangle[n]=s;
}
void CreateEllipse(Ellips *ellips,int n)
{
  double s=ellips->GetArea();
  AreasOfEllipse[n]=s;
}
void __fastcall TForm1::N7Click(TObject *Sender)
{
  int j=0;
  if(m==0)
  {
    for(int i=0;i<15;i++)
      if(ListOfImage[i]==1)
        j++;
  if(j>1)
    {ShowMessage("Виберіть дві фігури та повторно виберіть даний пункт меню.");k=0;l=0;Form1->Shape->Enabled=false;Form1->Help->Enabled=false;}
  else
    {ShowMessage("На площині не достатньо фігур!"); return;}
  }
  if(m==1)
  {
    double s1,s2;
    if(AreasOfTriangle[k-1]!=0)
      s1=AreasOfTriangle[k-1];
    else
      if(AreasOfRectangle[k-1]!=0)
       s1=AreasOfRectangle[k-1];
      else
        if(AreasOfEllipse[k-1]!=0)
          s1=AreasOfEllipse[k-1];
    if(AreasOfTriangle[l-1]!=0)
      s2=AreasOfTriangle[l-1];
    else
      if(AreasOfRectangle[l-1]!=0)
        s2=AreasOfRectangle[l-1];
      else
        if(AreasOfEllipse[l-1]!=0)
          s2=AreasOfEllipse[l-1];
    if(s1>s2)
     ShowMessage("Площа першої фігури більша("+FloatToStr(s1)+"/"+FloatToStr(s2)+").");
    else
     ShowMessage("Площа другої фігури більша("+FloatToStr(s1)+"/"+FloatToStr(s2)+").");
    m=0;l=0;k=0;
    Form1->Shape->Enabled=true;Form1->Help->Enabled=true;
  }
}
//---------------------------------------------------------------------------

void __fastcall TForm1::AboutClick(TObject *Sender)
{
  AboutBox->Show();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::N9Click(TObject *Sender)
{
 Form2->Image15->Canvas->Pen->Color=clWhite;
 Form2->Image15->Canvas->Rectangle(0,0,200,200);
 int j=0,a1,b1,a2,b2;
  if(m==0)
  {
    for(int i=0;i<15;i++)
      if(ListOfImage[i]==1)
        j++;
  if(j>1)
    {ShowMessage("Виберіть дві фігури та повторно виберіть даний пункт меню.");k=0;l=0;Form1->Shape->Enabled=false;Form1->Help->Enabled=false;}
  else
    {ShowMessage("На площині не достатньо фігур!"); return;}
  }
  if(m==1)
  {
      if(d[k-1]==2 && d[l-1]==2)
     {
      if(sqrt(pow(b[k-1][0]-b[k-1][1],2))>sqrt(pow(b[l-1][0]-b[l-1][1],2)) && sqrt(pow(b[k-1][2]-b[k-1][3],2))>sqrt(pow(b[l-1][2]-b[l-1][3],2)))
     ShowMessage("2 in 1");
      else if(sqrt(pow(b[k-1][0]-b[k-1][1],2))<sqrt(pow(b[l-1][0]-b[l-1][1],2)) && sqrt(pow(b[k-1][2]-b[k-1][3],2))<sqrt(pow(b[l-1][2]-b[l-1][3],2)))
      ShowMessage("1 in 2");
      else ShowMessage("not exist");
     }
    switch(d[k-1])
     {
      case 1: DrawTriangle(a[k-1][0]*2,a[k-1][1]*2,a[k-1][2]*2,a[k-1][3]*2-50,a[k-1][4]*2-50,a[k-1][5]*2-50,Form2->Image15); break;
      case 2: a1=(100-abs(b[k-1][1]-b[k-1][0]))/2; a2=100-a1; b1=(100-abs(b[k-1][3]-b[k-1][2]))/2; b2=100-b1;
            DrawRectangle(a1,a2,b1-50,b2-50,Form2->Image15); break;
             //     DrawRectangle(b[k-1][0]*2,b[k-1][1]*2,b[k-1][2]*2-50,b[k-1][3]*2-50,Form2->Image15); break;

      case 3: DrawEllipse(c[k-1][0]*2,c[k-1][1]*2,c[k-1][2]*2-50,c[k-1][3]*2-50,Form2->Image15); break;
     }
    switch(d[l-1])
     {
      case 1: DrawTriangle(a[l-1][0]*2,a[l-1][1]*2,a[l-1][2]*2,a[l-1][3]*2-50,a[l-1][4]*2-50,a[l-1][5]*2-50,Form2->Image15); break;
      case 2: a1=(100-abs(b[l-1][1]-b[l-1][0]))/2; a2=100-a1; b1=(100-abs(b[l-1][3]-b[l-1][2]))/2; b2=100-b1;
            DrawRectangle(a1,a2,b1-50,b2-50,Form2->Image15); break;
     // DrawRectangle(b[l-1][0]*2,b[l-1][1]*2,b[l-1][2]*2-50,b[l-1][3]*2-50,Form2->Image15); break;
      case 3: DrawEllipse(c[l-1][0]*2,c[l-1][1]*2,c[l-1][2]*2-50,c[l-1][3]*2-50,Form2->Image15); break;
     }

     Form2->Show();
    m=0;l=0;k=0;
    Form1->Shape->Enabled=true;Form1->Help->Enabled=true;
  }
}
//---------------------------------------------------------------------------

Соседние файлы в папке Курсовая
  • #
    30.05.202019.18 Кб2MainProject.obj
  • #
    30.05.20201 Кб2MainProject.res
  • #
    30.05.20202.03 Mб2MainProject.tds
  • #
    30.05.20205.13 Кб3MainProject.~bpr
  • #
    30.05.20201.7 Кб2MainProject.~cpp
  • #
    30.05.202032.75 Кб2MainUnit.cpp
  • #
    30.05.202051 б2MainUnit.ddp
  • #
    30.05.20205.06 Кб2MainUnit.dfm
  • #
    30.05.20203.19 Кб2MainUnit.h
  • #
    30.05.2020127.57 Кб2MainUnit.obj
  • #
    30.05.202032.74 Кб2MainUnit.~cpp