Закраска гранично-заданной области с затравкойРефераты >> Программирование и компьютеры >> Закраска гранично-заданной области с затравкой
TShiftState Shift, int X, int Y)
{
if(start==5) {x0=X;y0=Y;Canvas->Pixels[X][Y]=kraska;
Zaliv();
}
if((Button==mbLeft)&&(start!=5))
{
Canvas->Pen->Color = bcolor; // выбрать цвет контура
// Brush->Color = clYellow; // выбрать цвет заливки
if(metka==1) Canvas->LineTo(X,Y);
metka=1;
// нарисовать эллипс
xtmp=X;
ytmp=Y;
Canvas->MoveTo(X,Y);
if(start==0) {x0=X,y0=Y;start=1;}
// randomize();
//Canvas->Brush->Color = (Graphics::TColor) $(00FF0000);
}
if (Button==mbRight)
{
Canvas->Pen->Color = bcolor;
Canvas->LineTo(x0,y0);
metka=0;
start=0;
}
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
void fastcall TForm1::movexy(TObject *Sender, TShiftState Shift, int X,
int Y)
{
Label2->Caption=X;
Label4->Caption=Y;
// xtmp=X;ytmp=Y;
//Label6->Caption=Canvas->Pixels[x0][y0];
//Zaliv();
}
//---------------------------------------------------------------------------
void fastcall TForm1::vpered(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y)
{
Edit1->Text=" Выберите точку закраски";
start=5;
}
//---------------------------------------------------------------------------
void fastcall TForm1::reset_key(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y)
{
start=0;
PaintBox1->Visible=false;
PaintBox1->Visible=true;
start=0;
Edit1->Text="<-- Нарисуйте гранично-заданную область -->";
}
//---------------------------------------------------------------------------
5. Вывод
В процессе работы разобрался с методами закраски гранично-заданной области, а также отработаны приемы программирования на С++. Произошло более детальное знакомство с Borland C++ Builder 4.
Используемые источники информации:
- Математические основы машинной графики (Д. Роджерс, Дж. Адамс) «издательство МИР»
- Алгоритмические основы машинной графики (Д. Роджерс) «МИР»
- Internet