Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
2 / 2 / 0
Регистрация: 27.06.2011
Сообщений: 46
1

Нужно написать программу, в которой область (допустим, круг) будет заливаться нестандартной заливкой

02.03.2012, 12:24. Просмотров 2202. Ответов 5
Метки нет (Все метки)

Здравствуйте. Нужно написать программу, в которой область (допустим, круг) будет заливаться НЕСТАНДАРТНОЙ заливкой, своей. Спасибо
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.03.2012, 12:24
Ответы с готовыми решениями:

Хочу написать программу, в которой круг плавно двигается
Здравствуйте, ув. форумчане! Хочу написать программу, в которой круг плавно двигается. Он должен...

Написать программу, с помощью которой изображение будет разбиваться по пикселям и будет создаваться матрица
помогите пожалуйста, очень нужна помощь! нужно написать программу, с помощью которой изображение...

Написать программу, которая будет воспроизводить движущуюся графику в консоли, например, подвижной круг
Написать программу, которая будет воспроизводить движущуюся графику в консоли, например подвижной...

Написать программу, которая бы определяла область, в которой находится точка X и Y
Здравствуйте, такая делема. Мне надо написать программу, которая находит по координатам Х и Y в...

5
Модератор
62542 / 46715 / 32198
Регистрация: 18.05.2008
Сообщений: 113,062
02.03.2012, 16:23 2
Это у Вас задание такое или просто захотелось?
0
2 / 2 / 0
Регистрация: 27.06.2011
Сообщений: 46
02.03.2012, 23:27  [ТС] 3
Задание. Ну так что? Никаких вариантов?
0
Модератор
62542 / 46715 / 32198
Регистрация: 18.05.2008
Сообщений: 113,062
03.03.2012, 07:49 4
В Турбо Паскале есть такая возможность создавать свои штриховки для заливки, а в АВС вроде нет. Вообще заливка только цветом, лишь для стандартных фигур заливка кистью., опять же стандартной.
Правильную фигуру типа круг, прямоугольник можно например залить мелкими кружочками или квадратиками, или еще чем, а произвольные фигуры просто так не сделаешь. Как вообще точно звучало задание и точно оно было для Паскаля АВС?
0
2 / 2 / 0
Регистрация: 27.06.2011
Сообщений: 46
03.03.2012, 08:32  [ТС] 5
Нарисовать простейший рисунок и в одном из графических примитивов сделать собственную заливку (звёздочками, сердечками и т.д.). Если можно, покажите программу на ТурбоПаскале. Спасибо
0
Модератор
62542 / 46715 / 32198
Регистрация: 18.05.2008
Сообщений: 113,062
03.03.2012, 09:35 6
Заливка, точнее замостить круг точками.
Звездочки и сердечки сам рисуй.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
uses graphABC;
var xc,yc,x,y,r,c,w,h:integer;
begin
xc:=windowwidth div 2;
yc:=windowheight div 2;
r:=100;
c:=clRed;
setpencolor(c);
circle(xc,yc,r);
w:=6; //через сколько рисовать точки по горизонтали
h:=4;  //по вертикали
for x:=xc-r to xc+r do
for y:=yc-r to yc+r do
if (sqr(x-xc)+sqr(y-yc)<r*r)and(x mod w=0)and(y mod h=0)  then setpixel(x,y,c);
end.
Добавлено через 13 минут
Замостить область фигурами это не то что сплошная заливка, тут нужно как можно точнее рассчитывать размеры.
Вот например замостка звездами, подгонка очень грубая, если нужно, думай.

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
uses graphABC;
type Tpoint=record //пишем свой тип точка, он вообще-то есть в АВС,
                   //но нужно подключать модуль PointRect
            x,y:integer;
            end;
procedure Zvezda(x,y,r,c:integer);//рисование звезды
var i,a:integer;
    p:array[1..11] of Tpoint;
begin
a:=18;
for i:=1 to 10 do
 begin
  if odd(i) then
   begin
    p[i].x:=x+round(r*cos(a*pi/180));
    p[i].y:=y-round(r*sin(a*pi/180));
   end
  else
   begin
    p[i].x:=x+round(r*cos(a*pi/180)/2);
    p[i].y:=y-round(r*sin(a*pi/180)/2);
   end;
  a:=a+36;
 end;
p[11].x:=p[1].x;
p[11].y:=p[1].y;
MoveTo(p[1].x,p[1].y);
setpencolor(c);
for i:=1 to 11 do
LineTo(p[i].x,p[i].y);
floodfill(x,y,c);
end;
var xc,yc,x,y,w,h,r1,r:integer;
begin
xc:=windowwidth div 2;
yc:=windowheight div 2;
w:=200;
h:=100;
r:=round(w/30);
setpencolor(clGreen);
rectangle(xc-w,yc-h,xc+w,yc+h);
for x:=xc-w+r to xc+w-r do
for y:=yc-h+r to yc+h-r do
if (x mod (2*r)=0)and(y mod (2*r)=0) then Zvezda(x,y,r,clred);
end.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.03.2012, 09:35

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Написать программу которая определяет область в которой находится точка
Здравствуйте.. помогите пожалуйста написать программу. из дано, дан только лишь рисунок. Задача...

Написать программу по которой будет строиться рисунок
Нужно написать программу по которой будет строиться этот рисунок

Нужно написать программу в которой нужно проверять условия в текстовом файле
Написать программу, которая считывает английский текст из файла и выводит его на экран, заменив...

Как написать программу в которой будет 2 действующих окна?
Собственно сабж. Как сделать так, чтобы допустим у меня была консоль, в ней прога писала какой-то...


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

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

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