50348

Заповнення багатокутників

Лабораторная работа

Информатика, кибернетика и программирование

Програмно реалізувати алгоритм визначення попадання точки в трикутник. Реалізувати найпростіший алгоритм заповнення певним кольором довільного контуру із заданим кольором межі.Малювання зафарбованого трикутника:

Украинкский

2014-01-21

143 KB

3 чел.

Міністерство освіти і науки України

Черкаський Національний Університет ім. Богдана Хмельницького

Факультет ОТІУС

Звіт

до Лабораторної Роботи №3

Виконав:

студент 2-го курсу

групи КС-11

         Свідерський М.Ю.

Черкаси 2013

Тема: Заповнення багатокутників.

Завдання:

  1.  Створити процедуру малювання зафарбованого трикутника.

Програмно реалізувати алгоритм визначення попадання точки в трикутник.

Реалізувати найпростіший алгоритм заповнення певним кольором довільного контуру із заданим кольором межі.

Малювання зафарбованого трикутника:

procedure TForm1.Button1Click(Sender: TObject);

var

 A,B,C,T: Tposition;

 i,x1,x2,sy : integer;

begin

 Image1.Canvas.Rectangle(0,0,ClientWidth,ClientHeight);

 A.x := StrToInt(Edit1.Text);

 A.y := StrToInt(Edit2.Text);

 B.x := StrToInt(Edit3.Text);

 B.y := StrToInt(Edit4.Text);

 C.x := StrToInt(Edit5.Text);

 C.y := StrToInt(Edit6.Text);

 If A.y>B.y then begin T:=B; B:=A; A:=T; end;

 If A.y>C.y then begin T:=C; C:=A; A:=T; end;

 If B.y>C.y then begin T:=B; B:=C; C:=T; end;

 for sy := A.x to C.y do

   begin

     x1 := round(A.x + (sy - A.y)*(C.x - A.x)/(C.y - A.y));

     if (sy < B.y) then

       x2 := round(A.x + (sy - A.y)*(B.x - A.x)/(B.y - A.y))

     else

       if (C.y =  B.y) then

         x2 := B.x

       else

         x2 := round(B.x + (sy - B.y)*(C.x - B.x)/(C.y - B.y));

     if (x1 > x2) then

       begin

         T.x := x1;

         x1 := x2;

         x2 := T.x;

       end;

     i := x1;

     while (i <> x2) do

       begin

         inc(i);

         Image1.Canvas.Pixels[i,sy] := clBlue;

       end;

   end;

end;

Визначення попадання точки в трикутник:

procedure TForm1.Button1Click(Sender: TObject);

var

 A,B,C,T : TPosition;

 x1,x2,sy,xpr,ypr : integer;

begin

 A.x := StrToInt(Edit1.Text);

 A.y := StrToInt(Edit2.Text);

 B.x := StrToInt(Edit3.Text);

 B.y := StrToInt(Edit4.Text);

 C.x := StrToInt(Edit5.Text);

 C.y := StrToInt(Edit6.Text);

 xpr := StrToInt(Edit7.Text);

 ypr := StrToInt(Edit8.Text);

 If A.y>B.y then begin T:=B; B:=A; A:=T; end;

 If A.y>C.y then begin T:=C; C:=A; A:=T; end;

 If B.y>C.y then begin T:=B; B:=C; C:=T; end;

 if ((ypr >= A.x) and (ypr <= C.y)) then

   begin

     sy := ypr;

     x1 := round(A.x + (sy - A.y)*(C.x - A.x)/(C.y - A.y));

     if (sy < B.y) then

       x2 := round(A.x + (sy - A.y)*(B.x - A.x)/(B.y - A.y))

     else

       if (C.y =  B.y) then

         x2 := B.x

       else

         x2 := round(B.x + (sy - B.y)*(C.x - B.x)/(C.y - B.y));

     if (x1 > x2) then

       begin

         T.x := x1;

         x1 := x2;

         x2 := T.x;

       end;

     if ((xpr >= x1) and (xpr <= x2)) then

       Label10.Caption := 'YES'

     else

       Label10.Caption := 'NO';

   end

 else

   Label10.Caption := 'NO';

end;

Заповнення певним кольором довільного контуру із заданим кольором межі:

procedure TForm1.Button1Click(Sender: TObject);

var

 x1, y1, x2, y2, dx, dy, i, s1, s2, exch, temp : integer;

 e : real;

begin

 x1 := StrToInt(Edit1.Text);

 y1 := StrToInt(Edit2.Text);

 x2 := StrToInt(Edit3.Text);

 y2 := StrToInt(Edit4.Text);

 dx := abs(x2-x1);

 dy := abs(y2-y1);

 s1 := Sign(x2-x1);

 s2 := Sign(y2-y1);

 if (dy > dx) then

 begin

   temp := dx;

   dx := dy;

   dy := temp;

   exch := 1;

 end

 else exch := 0;

 e := 2*dy - dx;

 for i := 1 to dx do

 begin

   Image1.Canvas.Pixels[x1, y1] := ColorBox1.Selected;

   while(e >= 0) do

   begin

     if (exch = 1) then x1 := x1 + s1

     else y1 := y1 +s2;

     e := e - 2*dx;

   end;

   if (exch = 1) then y1 := y1 + s2

   else x1 := x1 + s1;

   e := e + 2*dy

 end;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

 Image1.Canvas.Rectangle(0,0,Image1.Width, Image1.Height);

end;

procedure TForm1.Button2Click(Sender: TObject);

var q : TQueue;

   x, y, x1, y1 : integer;

begin

 x := StrToInt(Edit5.Text);

 y := StrToInt(Edit6.Text);

 q := TQueue.Create();

 Image1.Canvas.Pixels[x, y] := ColorBox3.Selected;

 q.incert(x, y);

 while (not(Q.Empty()))do

 begin

   x1 := Q.getx;

   y1 := Q.gety;

   if ((x1-1 >= 0)and(Image1.Canvas.Pixels[x1-1, y1] <> ColorBox2.Selected)and(Image1.Canvas.Pixels[x1-1, y1] <> ColorBox3.Selected){(used[x1-1][y1] = false)})then

   begin

     Q.incert(x1-1, y1);

     Image1.Canvas.Pixels[x1-1, y1] := ColorBox3.Selected;

   end;

   if ((x1+1 <=905)and(Image1.Canvas.Pixels[x1+1, y1] <> ColorBox2.Selected)and(Image1.Canvas.Pixels[x1+1, y1] <> ColorBox3.Selected){(used[x1+1][y1] = false)})then

   begin

     Q.incert(x1+1, y1);

     Image1.Canvas.Pixels[x1+1, y1] := ColorBox3.Selected;

   end;

   if ((y1-1 >= 0)and(Image1.Canvas.Pixels[x1, y1-1] <> ColorBox2.Selected)and(Image1.Canvas.Pixels[x1, y1-1] <> ColorBox3.Selected){(used[x1][y1-1] = false)})then

   begin

     Q.incert(x1, y1-1);

     Image1.Canvas.Pixels[x1, y1-1] := ColorBox3.Selected;

   end;

   if ((y1+1 <=305)and(Image1.Canvas.Pixels[x1, y1+1] <> ColorBox2.Selected)and(Image1.Canvas.Pixels[x1, y1+1] <> ColorBox3.Selected){(used[x1][y1+1] = false)})then

   begin

     Q.incert(x1, y1+1);

     Image1.Canvas.Pixels[x1, y1+1] := ColorBox3.Selected;

   end;

 end;

end;

Висновок: на цій лабораторній роботі я навчився малювати зафарбовані трикутники, визначати попадання точки в трикутник, заповнювати певним кольором довільний контур із заданим кольором межі.


 

А также другие работы, которые могут Вас заинтересовать

45277. Обобщенная структурная схема цифровой АТС. Преобразование аналогового сигнала в цифровую форму 87 KB
  Преобразование аналогового сигнала в цифровую форму. МАЛ содержит абонентские комплекты АК взаимодействие оборудования АТСЭ с оконечным устройством пользователя и мультиплексор цифрового тракта Мх мультиплексирование индивидуальных Вканалов МЦК содержит коммутационное поле КПпроизводит коммутацию любого канального интервала time slot любого входящего тракта с любым канальным интервалом любого исходящего тракта линейные комплекты ЛКтобеспечивает синхронизацию ИКМ трактов и преобразование линейного сигнала генератор...
45278. Идеология и архитектура Softswitch коммутатора 135.5 KB
  Идеология и архитектура Softswitch коммутатора. Рисунок по архитектуре Softswitch является носителем интеллектуальных возможностей сети который координирует управление обслуживанием вызовов сигнализацию и функции обеспечивающие установление соединения через одну или несколько сетей. Фактически Softswitch остается тем же привычным коммутационным узлом но без цифрового коммутационного поля кросса и т. Термин Softswitch был придуман при разработке интерфейса между интерактивной речевой системой IVR и АТС с коммутацией каналов в...
45279. Многоканальные разговорные ИКМ - тракты с временным разделением каналов (ВРК) 136.5 KB
  Многоканальные разговорные ИКМ тракты с временным разделением каналов ВРК. тракты с временным разделением каналов ВРК. Цифровая система передачи ИКМ30 предназначена для формирования абонентских и соединительных линий ГТС и пригородной связи и позволяет организовать до 30 каналов ТЧ по парам низкочастотного кабеля ГТС а при наличии соответствующего оборудования сопряжения и линейного тракта каналоформирующая аппаратура ИКМ30 может использоваться для систем передачи по оптическим кабелям. Остальные 30 каналов используются для...
45280. Архитектура и интерфейсы GSM (мобильная станция, подсистема базовых станций, центр коммутации, домашний и визитный регистры) 62.5 KB
  Центр коммутации осуществляет постоянное слежение за подвижными станциями используя домашний регистр местоположения HLR и визитный регистр местоположения VLR. Ведется регистрация данных об изменении местоположения и роуминге блуждании абонента включая данные о временном идентификационном номере подвижного абонента TMSI Temporry Mobile Subscriber Identity и соответствующем визитном регистре местоположения VLR. Местоположение мобильных станций находится обычно в форме адреса данной мобильной станции в VLR. К данным содержащимся...
45281. Архитектура и интерфейсы GSM (регистры защиты и аутентификации, оборудование эксплуатации и технического обслуживания) 111.5 KB
  Сеть GSMвключает 3 основные части: мобильные станции MSкоторые перемещаются вместе с абонентом; подсистема базовых станций BSкоторая управляет радиолинией связи с мобильной станцией; подсистема сети SSS главную часть которой составляет центр коммутации мобильной связи MSC он выполняет коммутацию между мобильными станциями а также между мобильными или стационарными сетевыми пользователями. Регистр идентификации оборудования база данных которая содержит список всей допустимой к обслуживанию подвижной аппаратуры на сети...
45282. Основные принципы организации сети GSM (интерфейсы, географические зоны, использование частот) 251 KB
  Основные принципы организации сети GSM интерфейсы географические зоны использование частот. Внутренние интерфейсы GSM Внутренние интерфейсы показаны и перечислены в таблице Таблица 1. Типы внутренних интерфейсов сети GSM Тип Связь между устройствами MSCBSS bis BSCBTS B MSCVLR C MSCHLR D HLRVLR E MSCMSC O BSCOMC M BSCTCE Um MSBTS X OMCOMC Примечание: Xинтерфейс предназначен для связи OMC различных GSM Аинтерфейс. Интерфейс между MSC и BSS подсистема базовых станций BSC BTS обеспечивает передачу сообщений для управления...
45283. Каналы сигнализации и трафика в системе GSM (состав принципы использования) 88.5 KB
  Каналы сигнализации и трафика в системе GSM состав принципы использования. Очевидно что использование радиоканалов в мобильной сети GSM отличается от их применения в стационарной сети. Принцип использования каналов в системе GSM показан на рис. В стационарной сети абонентские линии абонентские каналы трафика закреплены за телефонным аппаратом.
45284. Коммутация в GSM (пример обслуживания вызова от абонента ТфОП к абоненту мобильной сети) 88 KB
  Обслуживание вызова от абонента стационарной сети к абоненту мобильной сети GSM В рассматриваемом примере порядок действий следующий: Входящий вызов поступает от стационарной сети ТфОП на вход шлюза MSC GMSC Gtewy MSC. Он передается назад в HLR GMSC. Затем соединение переключается к соответствующему MSC. MSC вырабатывает запрос VLR.
45285. Частотный план сетей UMTS/LTE и его развитие в LTE Advanced. Архитектура сети LTE. Назначение подсистем и узлов. Отличия от сети UMTS. Протоколы интерфейса S1 сети LTE 977 KB
  Для внедрения решений ВКР-07 по системам мобильной связи семейства IMT (LTE) рабочие группы Партнерского проекта 3GPP и ETSI определили в технических спецификациях 17 полос радиочастот для режима FDD и 8 полос для режима TDD (табл. 2.7) 124]. Кроме того, эти диапазоны также входят в число диапазонов, определенных в рекомендациях МСЭ для развития сетей мобильного беспроводного доступа третьего и четвертого поколени2