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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.02.2014, 22:53   #1
mishammm
Форумчанин
 
Регистрация: 21.09.2013
Сообщений: 232
По умолчанию анимация в турбо паскаль

всем привет. народ пожалуйста дорисуйте домик и облако в моей программе. тут типа восходит солнце.


Код:
uses
   crt,graph;
   var
      gd,gm:integer;
      x,y:real;
      i,j:integer;
      begin
      gd:=detect;
      initgraph(gd,gm,'');
      setcolor(1);
      J:=300;
      repeat
      for j:=320 downto 110 do begin
      clrscr;
      setcolor(3);
      setcolor(14);
      circle(getmaxx div( 2),j,39);
      floodfill(getmaxx div(2),j,14);

      delay(10);
      end;
      readln;
      until keypressed;
      closegraph;
      end.
mishammm вне форума Ответить с цитированием
Старый 19.02.2014, 11:16   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

такая фигня устроит?

Код:
uses
   crt,graph;
const Rad = 50;
var
      gd,gm:integer;
      x,y: integer;
      i,j:integer;

procedure show_domik;
begin
SetColor(15);
Line(0, 449, 678, 449);
Rectangle(367, 347, 606, 448);
Rectangle(564, 403, 590, 447);
Rectangle(383, 385, 438, 420);
Rectangle(469, 384, 531, 418);
Line(408, 384, 408, 420);
Line(489, 384, 489, 417);
Line(513, 384, 513, 417);
Line(365, 346, 302, 346);
Line(302, 345, 471, 223);
Line(471, 223, 643, 343);
Line(603, 345, 642, 345);
Ellipse(88,73,0,360, 67, 30);

Ellipse(506,47,0,360, 98, 29);

Line(539, 248, 539, 270);
Line(540, 246, 573, 246);
Line(573, 246, 573, 295);
end;

begin
      gd:=detect;
      initgraph(gd,gm,'');
      setbkcolor(3);
      setcolor(3);
      cleardevice;
      x := getmaxx div( 2) - 70;
      show_domik;
      repeat
      for j:=GetMaxY-Rad-40 downto Rad  do begin
        SetFillStyle(1, Black);
        Circle(x,j, Rad);
        FillEllipse(x,j, Rad, Rad);

        SetColor(3);
        Circle(x,j, Rad);
        SetFillStyle(1,14);
        FillEllipse(x,j, Rad, Rad);

        delay(20);

       if keypressed then Break;
      end;
      Delay(1000);

      SetFillStyle(1, Black);
      Circle(x,Rad, Rad);
      FillEllipse(x,Rad, Rad, Rad);

      until keypressed;
      Readln;
      closegraph;
end.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 19.09.2014, 22:39   #3
Маруся171996
Пользователь
 
Регистрация: 22.11.2013
Сообщений: 11
По умолчанию

Извините за мою такую просьбу,но вы бы не могли вкратце объяснить все действия,которые сделаны в этой программе. Пожалуйста,если вам не трудно помочь
Маруся171996 вне форума Ответить с цитированием
Старый 19.09.2014, 22:53   #4
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Графика в досовском паскале?
Шёл MMXIV-й год...
Твой препод - маньяк?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 20.09.2014, 12:38   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

min@y™ да хоть 2015-й! Turbo Pascal вечен!

Маруся171996,
программа предельно простая.
выводится домик и облачка - потом в цикле or j:=GetMaxY-Rad-40 downto Rad

Цитата:
Код:
        SetColor(3);
        Circle(x,j, Rad);
стереть кружок (вывести цветом фона)


Цитата:
Код:
        SetFillStyle(1,14);
        FillEllipse(x,j, Rad, Rad);
выводится желтый кружок (аллегория Солнца)

маленькая пауза...
и цикл повторяется.

Что Вам конкретно не понятно?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.09.2014, 12:47   #6
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
да хоть 2015-й! Turbo Pascal вечен!
А я и не спорю, вечен.
Преподавать-то его графику зачем?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 20.09.2014, 12:53   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Преподавать-то его графику зачем?
не ко мне вопрос! Я тоже не вижу в этом никакого смысла.
Предположения, почему так, есть, конечно. Но это только мои догадки...
Но хуже не это. Думаю, что у тех школяров/студентов, которые получают подобные задания нет выбора... Сие есть весьма печально.


p.s. кстати, постоянно до сих пор возникают ученики с заданиями на графику в QBasic, ещё более жестянная жесть, имхо!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.09.2014, 13:35   #8
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
постоянно до сих пор возникают ученики с заданиями на графику в QBasic, ещё более жестянная жесть, имхо!
Мне на работе приходится писать программы на MSQC под DOS! Вот это - ЖЭСТЬ! Но есть и плюсы: платят неплохие бабки за ненапряжную работу.

Пришлось написать себе IDE
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...

Последний раз редактировалось min@y™; 20.09.2014 в 13:42.
min@y™ вне форума Ответить с цитированием
Старый 20.09.2014, 13:57   #9
Маруся171996
Пользователь
 
Регистрация: 22.11.2013
Сообщений: 11
По умолчанию

непонятна запись вот эта x := getmaxx div( 2) - 70; - почему div 2 и минус 70

for j:=GetMaxY-Rad-40 downto Rad do begin и вот здесь что означает это GetMaxY-Rad-40.
И Rad - это радиус?
извините за,возможно,глупые вопросы
Маруся171996 вне форума Ответить с цитированием
Старый 20.09.2014, 14:05   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

x := getmaxx div( 2) означает получение середины экрана по координате Х
GetMaxX - получение ширины экрана. div 2 даст пол-ширины т.е. центр экрана
А -70 это смещение на 70 влево от центра экрана.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
анимация в паскаль Кинива Паскаль, Turbo Pascal, PascalABC.NET 6 08.12.2013 11:03
Как можно в Паскаль АВС (Паскаль-Турбо) вставлять в результаты печати программы графики, таблицы, схемы, набранные формулы, выраже IZOPGRAM Паскаль, Turbo Pascal, PascalABC.NET 0 11.06.2012 10:54
Не могу найти ошибку, анимация в паскаль Karima Помощь студентам 0 25.11.2010 16:56
анимация в Паскаль Кинива Паскаль, Turbo Pascal, PascalABC.NET 1 21.06.2010 12:43