Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.11.2015, 22:24   #1
karisha98
Пользователь
 
Регистрация: 18.10.2015
Сообщений: 10
По умолчанию Перемещение графических объектов

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

Код:
uses graphABC,crt;
const r: array [1..10] of byte=(0,0,0,0,8,8,0,0,0,0);
      g: array [1..10] of byte=(160,145,137,127,121,121,127,137,145,160);
      b: array [1..10] of byte=(227,203,189,135,167,167,135,189,203,227);
var j: integer;

procedure Krug (rr: integer);
var i: integer;
begin
setbrushcolor(rgb(r[1],g[1],b[1]));
for i:=1 to 10 do
    begin
    setpencolor(rgb(r[i],g[i],b[i]));
    if rr div 100<2 then setpenwidth(10)
       else setpenwidth(10*(rr div 100));
    circle(250,250,rr-(i*8));
    end;
end;

begin
lockdrawing;
hidecursor;
clearwindow(rgb(r[1],g[1],b[1]));
repeat
setwindowsize(500,500);
for j:=1 to 350 do
    begin
    Krug (j*3);
    Krug (j*2);
    sleep(10);
    Krug (j);
    sleep(15);
    redraw;
    end;
until keypressed;
end.
___
форматируйте код
Модератор

Последний раз редактировалось Serge_Bliznykov; 02.11.2015 в 23:01.
karisha98 вне форума Ответить с цитированием
Старый 02.11.2015, 23:06   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Что, код где-то утащили, а что в нём делается, совсем непонятно?

Очевидно же, что если цикл прокрутить в обратную сторону, круги будут не рассходиться, а, наоборот, сходиться:

Код:
for j:=350 downto 1 do
ну, или полностью:
Код:
uses graphABC,crt;
const r: array [1..10] of byte=(0,0,0,0,8,8,0,0,0,0);
      g: array [1..10] of byte=(160,145,137,127,121,121,127,137,145,160);
      b: array [1..10] of byte=(227,203,189,135,167,167,135,189,203,227);
var j: integer;

procedure Krug (rr: integer);
var i: integer;
begin
setbrushcolor(rgb(r[1],g[1],b[1]));
for i:=1 to 10 do
    begin
    setpencolor(rgb(r[i],g[i],b[i]));
    if rr div 100<2 then setpenwidth(10)
       else setpenwidth(10*(rr div 100));
    circle(250,250,rr-(i*8));
    end;
end;

begin
lockdrawing;
hidecursor;
clearwindow(rgb(r[1],g[1],b[1]));
repeat
  setwindowsize(500,500);
  for j:=1 to 350 do
  begin
    Krug (j*3);
    Krug (j*2);
    sleep(10);
    Krug (j);
    sleep(15);
    redraw;
  end;
  for j:=350 downto 1 do
  begin
    Krug (j*3);
    Krug (j*2);
    sleep(10);
    Krug (j);
    sleep(15);
    redraw;
  end;
until keypressed;
end.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
движение графических объектов elka Общие вопросы C/C++ 9 25.04.2012 17:24
Движение графических объектов Krivo1993 Помощь студентам 4 31.01.2011 13:58
Вывод графических объектов rocky7 Общие вопросы C/C++ 2 20.08.2009 12:27
Перемещение графических объектов на форме bush007 Помощь студентам 3 05.04.2009 17:43
Перемещение графических объектов по форме Klyacksa Общие вопросы Delphi 15 20.06.2008 12:58