Скачиваний:
14
Добавлен:
28.06.2014
Размер:
3.18 Кб
Скачать
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 struct Tochka
{
int x0;
int y0;
};

int xx, yy;
int x[100], y[100];
int n=0;
int p[4];
int w=0;
int r[4];

void PaintX (Tochka t1, Tochka t2)
{
 Form1->Image1->Canvas->MoveTo(t1.x0,t1.y0);
 Form1->Image1->Canvas->LineTo(t2.x0,t2.y0);
}

Tochka t[100];

bool GenSoch(int p[], int n)
{
 int j, d, k;  bool result;

for(j=1;j<4;j++)
 {
  d = p[4-j] + j;
  result = d>n;
  if (result==false)
  {
  for (k=1;k<j+1;k++)
   p[4-k] = d - k + 1;
   exit;
  }
 }
return result;
}

void __fastcall TForm1::Image1MouseDown(TObject *Sender, TMouseButton Button,
   TShiftState Shift, int X, int Y)
{
 xx=X;
 yy=Y;
}

void __fastcall TForm1::Image1Click(TObject *Sender)
{
n++;
int nn = n;
Form1->Image1->Canvas->Ellipse(xx-8,yy-8,xx+8,yy+8);
Form1->Image1->Canvas->TextOutA(xx-3,yy-7,IntToStr(nn));
x[nn]=xx;
y[nn]=yy;
t[nn].x0 = x[nn];
t[nn].y0 = y[nn];
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{

Edit1->Text = "";

if (w!=0)
 {
  Form1->Image1->Canvas->Pen->Color=0xffffff;
  PaintX(t[r[1]],t[r[2]]);
  PaintX(t[r[1]],t[r[3]]);
  PaintX(t[r[2]],t[r[3]]);
  Form1->Image1->Canvas->Pen->Color=0x000000;
  Form1->Image1->Canvas->Ellipse(t[r[1]].x0-8,t[r[1]].y0-8,t[r[1]].x0+8,t[r[1]].y0+8);
  Form1->Image1->Canvas->TextOutA(t[r[1]].x0-3,t[r[1]].y0-7,IntToStr(r[1]));
  Form1->Image1->Canvas->Ellipse(t[r[2]].x0-8,t[r[2]].y0-8,t[r[2]].x0+8,t[r[2]].y0+8);
  Form1->Image1->Canvas->TextOutA(t[r[2]].x0-3,t[r[2]].y0-7,IntToStr(r[2]));
  Form1->Image1->Canvas->Ellipse(t[r[3]].x0-8,t[r[3]].y0-8,t[r[3]].x0+8,t[r[3]].y0+8);
  Form1->Image1->Canvas->TextOutA(t[r[3]].x0-3,t[r[3]].y0-7,IntToStr(r[3])); 
  }

int mas[100];
int i, j, k;
float s, MaxS;


MaxS = 0;
for (j=1;j<4;j++)
 {p[j] = j;
  r[j] = p[j]; }

do
{
 i = p[1];
 j = p[2];
 k = p[3];
 s = abs((x[j] - x[i])*(y[k] - y[i]) - (y[j] - y[i])*(x[k] - x[i]))/2;
 if (s>MaxS)
  {MaxS = s;
   for (j=1;j<4;j++)
    r[j] = p[j];
   }
 }
while (GenSoch(p,n)==false);
w++;

Edit1->Text = FloatToStr(MaxS);
Form1->Image1->Canvas->Pen->Color=0x0000aa;
  PaintX(t[r[1]],t[r[2]]);
  PaintX(t[r[1]],t[r[3]]);
  PaintX(t[r[2]],t[r[3]]);
Form1->Image1->Canvas->Pen->Color=0x000000;

}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
 Form1->Image1->Canvas->Rectangle(0,0,Form1->Image1->Width,Form1->Image1->Height);
 n=0;
 w=0;
 Edit1->Text = "";
}
//---------------------------------------------------------------------------

Соседние файлы в папке сочетания
  • #
    28.06.20143.72 Кб14Project2.bpr
  • #
    28.06.20141.07 Кб15Project2.cpp
  • #
    28.06.201417.71 Кб15Project2.obj
  • #
    28.06.2014876 б14Project2.res
  • #
    28.06.20142.03 Mб14Project2.tds
  • #
    28.06.20143.18 Кб14Unit1.cpp
  • #
    28.06.201451 б14Unit1.ddp
  • #
    28.06.2014994 б14Unit1.dfm
  • #
    28.06.20141.16 Кб14Unit1.h
  • #
    28.06.201448.24 Кб14Unit1.obj
  • #
    28.06.20142.92 Кб14Unit1.~cpp