Форум программистов, компьютерный форум, киберфорум
Наши страницы
PascalABC.NET
Войти
Регистрация
Восстановить пароль
 
ngsernur
0 / 0 / 2
Регистрация: 31.10.2017
Сообщений: 27
#1

Floodfill. Не заливается - PascalABC.NET

03.01.2018, 18:18. Просмотров 163. Ответов 1
Метки нет (Все метки)

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
uses graphABC;
var i,c,z,x1,y1,x2,y2,x,y:integer;
A:array of point;
begin
   SetPenWidth(1); //солнце 
   SetPenColor(ClYellow); 
   SetBrushColor(ClYellow); 
   x1 := -50; y1 := -45; 
   x2 := 80; y2 := 60; 
   ellipse(x1, y1, x2, y2); 
   for i:=1 to 25 do 
     begin 
       c:=random(185); 
       z:=random(185); 
       line(0,0,c,z); 
     end; 
   SetBrushColor(Clskyblue); //облака 
   setpencolor(clskyblue); 
   ellipse(225,7,400,45); 
   ellipse(330,28,537,65); 
   ellipse(390,10,640,51); 
   ellipse(17,-10,197,23);
 
   line(0,240,640,240);//море
   fillrect(0,240,640,240);
   floodfill(3,340,clblue);
 
   setpencolor(clwhite); //волны 
   setpenwidth(1); 
   for i:=1 to 7 do begin 
   x:=random(600); 
   y:=random(205); 
   arc(25+x,324+y,15,30,150); 
  end; 
 
   setpencolor(clred);//кораблик
   setpenwidth(2);
   line(200,100,200,270);
   line(200,100,300,185);
   line(200,270,300,185);
   floodfill(270,199,cllightgray);
   line(200,185,300,185);
   line(200,128,300,185);
   line(200,157,300,185);
   line(200,213,300,185);
   line(200,243,300,185);
   setpencolor(clgray); 
   line(150,270,440,270);
   line(150,270,174,320);
   line(174,320,416,320);
   line(440,270,416,320);
   floodfill(319,310,cllightgray);
   setpencolor(clred);
   line(155,280,435,280);
   setpencolor(clolive); 
   setpenwidth(10);
   line(171,312,419,312);
   setpencolor(clbrown); 
   setpenwidth(1);
  
  
  
  begin //берег
   SetLength(A,3); 
   a[0].x:=0; 
   a[0].y:=430; 
   a[1].x:=200; 
   a[1].y:=430; 
   a[2].x:=340; 
   a[2].y:=480; 
   SetPenColor(clolive); 
   curve(A); 
   floodfill(34,458,clolive); 
  end; 
 
    setpencolor(clpurple);//забор
    setpenwidth(1);
    setbrushcolor(clpurple);
    x1:=10;
    x2:=10;
   for i:=1 to 6 do begin
    rectangle (x1,420,x2,480);
    x1:=30*i;
    x2:=10+30*(i-1);
   end;
    rectangle(10,430,150,440); 
    rectangle(10,460,150,470);
   
   setpencolor(clblack); //птицы 
   setPenWidth(1);
   SetBrushColor(clblack);  
   circle(480,120,3);
   circle(540,100,3);
   circle(600,80,3);
   arc(495,125,15,30,150); 
   arc(465,130,15,30,150);
   arc(555,105,15,30,150);
   arc(525,110,15,30,150);
   arc(615,85,15,30,150);
   arc(586,90,15,30,150);   
 
   setpenwidth(3); //горы 
   setpencolor(cltomato); 
   line(290,240,640,240); 
   setpencolor(clblack); 
   setpenwidth(1); 
   line(290,240,380,160);
   line(380,160,470,239);
   MoveTo(357,180); 
   LineTo(370, 175); 
   LineTo(385,185);
   LineTo(403,180);
   floodfill(300,230,cldarkgoldenrod); 
   SetPenWidth(1); 
   SetPenColor(clblack);
   line(400,240,520,185);
   line(520,185,640,240);
   MoveTo(488,200); 
   LineTo(505,195); 
   LineTo(512,202);
   LineTo(520,195);
   LineTo(525,200);
   LineTo(530,196);
   LineTo(551,200);
   floodfill(505,250,clmaroon);
   floodfill(380,230,clred);        
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.01.2018, 18:18
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Floodfill. Не заливается (PascalABC.NET):

Почему заливка FloodFill гораздо быстрее заливки через PutPixel?
Почему если заливать FloodFill(x, y, c), то будет гораздо быстрее, чем если...

Floodfill,написание функции.
Необходимо написать функцию на подобие Floodfilla с использованием очереди. Я...

Floodfill
Нужна помощь. Поискал на просторах интернетов, подумал сам - не получается у...

Floodfill
Подскажите что делать. Я ввожу...

Не работает floodfill
При его поялвении в коде , весь рисунок исчезает. А мне нужно закрасить один...

MetaFile и FloodFill
Добрый день уважаемый форумчане. Созрел еще один вопрос. Я рисую...

1
Puporev
Модератор
54149 / 41782 / 28889
Регистрация: 18.05.2008
Сообщений: 98,331
03.01.2018, 20:18 #2
Покрасил, если что не так, поправь, а то я слегка запутался.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
uses graphABC;
var c,z,x1,y1,x2,y2,x,y:integer;
    A:array of point;
begin
//небо
SetPenColor(clDarkgoldenrod);
SetBrushColor(clDarkgoldenrod);
Rectangle(0,0,640,240);
 //солнце
SetPenColor(ClYellow);
SetBrushColor(ClYellow);
x1 := -50; y1 := -45;
x2 := 80; y2 := 60;
Ellipse(x1, y1, x2, y2);
for var i:=1 to 25 do
 begin
   c:=random(185);
   z:=random(185);
   Line(0,0,c,z);
 end;
SetBrushColor(clSkyblue); //облака
SetPenColor(clSkyblue);
Ellipse(225,7,400,45);
Ellipse(330,28,537,65);
Ellipse(390,10,640,51);
Ellipse(17,-10,197,23);
//море
SetPenColor(clBlue);
SetBrushColor(ClBlue);
Rectangle(0,240,640,480);
SetPencolor(clWhite); //волны
for var i:=1 to 7 do
 begin
   x:=random(600);
   y:=random(205);
   Arc(25+x,324+y,15,30,150);
  end;
 SetPenColor(clred);//кораблик
 SetPenWidth(2);
 SetBrushColor(clLightgray);
 Polygon((200,100),(200,270),(300,185),(200,100));
 SetPenColor(clGray);
 SetBrushColor(clLightgray);
 Polygon((150,270),(440,270),(416,320),(174,320),(150,270));
 SetPenColor(clRed);
 Line(155,280,435,280);
 SetPenColor(clOlive);
 SetPenWidth(10);
 Line(171,312,419,312);
 SetPenColor(clBrown);
 SetPenWidth(1);
 SetLength(A,3);
 a[0].x:=0;
 a[0].y:=430;
 a[1].x:=200;
 a[1].y:=430;
 a[2].x:=340;
 a[2].y:=480;
 SetPenColor(clOlive);
 Curve(A);
 FloodFill(34,458,clOlive);
 SetPenColor(clPurple);//забор
 SetBrushColor(clPurple);
 x1:=10;
 x2:=10;
 for var i:=1 to 6 do
  begin
   Rectangle (x1,420,x2,480);
   x1:=30*i;
   x2:=10+30*(i-1);
  end;
 Rectangle(10,430,150,440);
 Rectangle(10,460,150,470);
 SetPenColor(clBlack); //птицы
 SetBrushColor(clBlack);
 Circle(480,120,3);
 Circle(540,100,3);
 Circle(600,80,3);
 Arc(495,125,15,30,150);
 Arc(465,130,15,30,150);
 Arc(555,105,15,30,150);
 Arc(525,110,15,30,150);
 Arc(615,85,15,30,150);
 Arc(586,90,15,30,150);
 //горы
 SetPenColor(clBlack);
 Line(400,240,520,185);
 Line(520,185,640,240);
 Line(400,240,640,240);
 MoveTo(488,200);
 LineTo(505,195);
 LineTo(512,202);
 LineTo(520,195);
 LineTo(525,200);
 LineTo(530,196);
 LineTo(551,200);
 FloodFill(520,230,clmaroon);
 FloodFill(520,190,clWhite);
 Line(290,240,380,160);
 line(380,160,470,239);
 Line(290,240,470,239);
 MoveTo(357,180);
 LineTo(370, 175);
 LineTo(385,185);
 LineTo(403,180);
 SetBrushColor(clRed);
 Polygon((290,240),(357,180),(370,175),(385,185),(403,180),(470,240),(290,240));
 FloodFill(380,165,clWhite);
end.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.01.2018, 20:18
Привет! Вот еще темы с решениями:

FloodFill - криво заливает
Всем привет. В общем, задача состоит в том, чтобы при нажатии на кнопку...

FloodFill не работает функция
Не работает функция FloodFill Первые два параметр это точка которая...

Не заливается база
Ошибка -- Структура таблицы `arena` -- DROP TABLE IF EXISTS...

Проблемы с заливкой через FloodFill
Необходимо залить прямоугольник и еще несколько фигур, которые строятся по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru