Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 15.04.2015, 12:45   #1 (permalink)
bender93
Member
 
Регистрация: 19.12.2014
Сообщений: 17
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию PASCAL ABC

Помогите
Построить семейство разноцветных окружностей
Вложения
Тип файла: docx окружности.docx (10.1 Кб, 131 просмотров)
bender93 вне форума   Ответить с цитированием

Старый 15.04.2015, 12:45
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Не нужно искать аналогичные темы, я размещу их прямо тут

Pascal
Pascal
Pascal
Pascal

Старый 15.04.2015, 12:46   #2 (permalink)
bender93
Member
 
Регистрация: 19.12.2014
Сообщений: 17
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Графика в Турбо Паскале
Модуль Graph
bender93 вне форума   Ответить с цитированием
Старый 15.04.2015, 13:04   #3 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Так.
Во-первых, если речь идет о Turbo Pascal и его модуле Graph, то что делает Pascal ABC в названии темы? У АВС, напомню, своя графика. Вы уж определитесь.
Во-вторых, в упор не вижу ничего цветного на Вашем рисунке:
Нажмите на изображение для увеличения
Название: Circles.jpg
Просмотров: 295
Размер:	9.5 Кб
ID:	222431
Что должно быть цветным - только контуры или заливка кругов? Напишите словами.
Vladimir_S вне форума   Ответить с цитированием
Старый 15.04.2015, 13:10   #4 (permalink)
bender93
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.
bender93 вне форума   Ответить с цитированием
Старый 15.04.2015, 14:02   #5 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Собственно, не очень понимаю, какая помощь Вам требуется. Образец программы есть, причем для более сложной задачи - заполненные круги. Задавайте цвет командой SetColor (можно также через случайный выбор), задавайте центры и радиусы окружностей и - вперед, с помощью команды Circle рисуйте. В чем проблемы?
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 15.04.2015, 14:39   #6 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 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, вывод трех окружностей оформить в виде процедуры;
- вызывайте процедуру рисования с новыми координатами необходимое количество раз.
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием
Старый 15.04.2015, 15:08   #7 (permalink)
bender93
Member
 
Регистрация: 19.12.2014
Сообщений: 17
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Цитата:
Сообщение от bender93 Посмотреть сообщение
Помогите
Построить семейство разноцветных окружностей
Цитата:
Сообщение от Vladimir_S Посмотреть сообщение
Собственно, не очень понимаю, какая помощь Вам требуется. Образец программы есть, причем для более сложной задачи - заполненные круги. Задавайте цвет командой SetColor (можно также через случайный выбор), задавайте центры и радиусы окружностей и - вперед, с помощью команды Circle рисуйте. В чем проблемы?
Образец конечно хорошо . Но я даже понятия не имею как эти круги заполнять))
bender93 вне форума   Ответить с цитированием
Старый 15.04.2015, 16:13   #8 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от bender93 Посмотреть сообщение
2.Только контуры.
Цитата:
Сообщение от bender93 Посмотреть сообщение
Но я даже понятия не имею как эти круги заполнять))
И как одно с другим вяжется? Если только контур, то зачем заполнять? А если Вы не понимаете, как вообще цветной кружок нарисовать - что же, ждите. Попробую выбрать время, покажу.
Vladimir_S вне форума   Ответить с цитированием
Старый 15.04.2015, 16:44   #9 (permalink)
Vladimir_S
Специалист
 
Регистрация: 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.
Миниатюры
aaaa01.jpg  
Vladimir_S вне форума   Ответить с цитированием
Старый 15.04.2015, 17:23   #10 (permalink)
bender93
Member
 
Регистрация: 19.12.2014
Сообщений: 17
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Цитата:
Сообщение от Vladimir_S Посмотреть сообщение
Вот так устроит?
Код:
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.
Спасибо большое!
bender93 вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 17:13.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.