15.04.2015, 12:45 | #1 (permalink) |
Member
Регистрация: 19.12.2014
Сообщений: 17
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
PASCAL ABC
Построить семейство разноцветных окружностей |
15.04.2015, 12:45 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Не нужно искать аналогичные темы, я размещу их прямо тут Pascal Pascal Pascal Pascal |
15.04.2015, 13:04 | #3 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Так.
Во-первых, если речь идет о Turbo Pascal и его модуле Graph, то что делает Pascal ABC в названии темы? У АВС, напомню, своя графика. Вы уж определитесь. Во-вторых, в упор не вижу ничего цветного на Вашем рисунке: Что должно быть цветным - только контуры или заливка кругов? Напишите словами. |
15.04.2015, 13:10 | #4 (permalink) |
Member
Регистрация: 19.12.2014
Сообщений: 17
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Прошу прощения!
1. Турбо Паскаль. 2.Только контуры. Вот как пример Построить семейство разноцветных окружностей, радиусы которых увеличваются. PROGRAM A2; USES GRAPH,CRT; VAR Driver, Mode, X, Y, R: INTEGER; BEGIN Driver:= Detect; INITGRAPH (Driver, Mode, 'C:\BP\BGI'); WHILE NOT KeyPressed DO BEGIN X:= GetMaxX DIV 2; Y:= GetMaxY DIV 2; R:=20; SetFillStyle (1,2); FloodFill (1,1,2); REPEAT SetColor (SUCC (RANDOM(16))); SetFillStyle (1,SUCC(RANDOM(16))); FillEllipse (X,Y,R,R); DELAY (1000); R:=R+ 10; UNTIL (X+ R>= GetMaxX) OR (Y+ R>= GetMaxY) OR (KeyPressed); ClearDevice; END; CloseGraph; END. |
15.04.2015, 14:02 | #5 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Собственно, не очень понимаю, какая помощь Вам требуется. Образец программы есть, причем для более сложной задачи - заполненные круги. Задавайте цвет командой SetColor (можно также через случайный выбор), задавайте центры и радиусы окружностей и - вперед, с помощью команды Circle рисуйте. В чем проблемы?
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
15.04.2015, 14:39 | #6 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
|
Если все же речь идет о PascalABC, о чем название темы как бы намекает:
- советую использовать последние версии PascalABC.Net, они более-менее допиленные; - графический модуль имеет название GraphABC, подключается так же, как и остальные модули, через команду uses; - команду initgraph() использовать не нужно, графика и так работает; - в этой реализации Pascal имеются особенности работы с примитивами, например, есть отдельные команды для вывода просто контура фигуры и заполненной фигуры; - цвет линии устанавливается при изменении параметров пера, командой Pen.Color:=цвет; - случайный цвет имеет специальную константу clRandom, которую можно указывать в качестве значения цвета; - заполненная (залитая цветом) окружность выводится командой Circle(x,y,r); - незаполненная окружность выводится командой DrawCircle(x,y,r); - для решения вашей задачи советую задавать координаты центров окружностей в виде переменных, а радиус изменять в цикле от 10 до 30 с шагом 10, вывод трех окружностей оформить в виде процедуры; - вызывайте процедуру рисования с новыми координатами необходимое количество раз.
__________________
Убить всех человеков! |
15.04.2015, 15:08 | #7 (permalink) | |
Member
Регистрация: 19.12.2014
Сообщений: 17
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Цитата:
|
|
15.04.2015, 16:13 | #8 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
И как одно с другим вяжется? Если только контур, то зачем заполнять? А если Вы не понимаете, как вообще цветной кружок нарисовать - что же, ждите. Попробую выбрать время, покажу.
|
15.04.2015, 16:44 | #9 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Вот так устроит?
Код:
Uses CRT,Graph; Var D,X,Y,R,i,j,k,Dr:Word; Driver, Mode:Integer; Begin Driver:= Detect; INITGRAPH (Driver, Mode, 'C:\BP\BGI'); Randomize; D:=GetMaxY div 4; Dr:=D div 12; SetLineStyle(SolidLn,0,ThickWidth); for i:=0 to 2 do for j:=i to 2 do begin X:=(GetMaxX div 2)-D+D*j; Y:=(GetMaxY div 2)-D+D*i; for k:=0 to 2 do begin R:=(D div 4)-k*Dr; SetColor(Random(15)+1); Circle(X,Y,R); end; end; ReadKey; End. |
15.04.2015, 17:23 | #10 (permalink) | |
Member
Регистрация: 19.12.2014
Сообщений: 17
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Цитата:
|
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|