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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.04.2010, 10:48   #1
Серый777
 
Регистрация: 24.04.2010
Сообщений: 8
Печаль программа, которая изображает рассвет в лесу,(отразить переход от ночного времени к началу дня)

Привет всем, помогите написать программу, которая изображает рассвет в лесу,(отразить переход от ночного времени к началу дня),
у меня с анимациями туго, мне бы хоть просто анимацию, т.к. лес готов
Серый777 вне форума Ответить с цитированием
Старый 24.04.2010, 11:25   #2
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

Лучше не анимацией делать а рассчитывать цвета. Посмотри HGE (такой графический движок), там в одной из демок есть переход от дня к ночи. Не обязательно его использовать, просто пойми алгоритм решения этой задачи.
P.S. Не посмотрел что это паскаль...

Последний раз редактировалось Вадим Буренков; 24.04.2010 в 11:26. Причина: Не посмотрел что это паскаль...
Вадим Буренков вне форума Ответить с цитированием
Старый 03.05.2010, 18:24   #3
Серый777
 
Регистрация: 24.04.2010
Сообщений: 8
По умолчанию

вот, мож кому понадобится

Код:
Program rassvet;
uses crt,graph;
var grd,grm,h,i,g,d,x,y,x0,y0,r:integer;
 style,col1,col2:byte;
 procedure Solnce(x,y,c:integer);
  begin
   setcolor(c);
   circle(x,y,30);
   setfillstyle(1,c);
   floodfill(x,y,c);
  end;
 procedure Triangle(x,y,h:integer;style,cl1,cl2:byte);
  begin
   setcolor(cl2);
   moveto(x,y);
   linerel(h div 2,h);
   linerel(-h,0);
   linerel(h div 2,-h);
   setfillstyle(style,cl2);
   floodfill(x,y+(h div 2),cl2);
  end;
 procedure fir(a,b,h,cz,cl1,cl2:word);
  var i:byte;
   begin
    for i:=1 to 3 do
     begin
      triangle(a,b,h,cz,cl1,cl2);
      b:=b+h;
      h:=h+5
     end;
    rectangle(a-(h div 10),b,a+(h div 10),b+h);
    setfillstyle(cz,cl2);
    floodfill(a-(h div 10)+1,b+1,cl2);
   end;
 procedure Forest (n,cl1,cl2,cz:byte);
  var i:byte;
    stl,a,b,h:integer;
   begin
    for i:=1 to n do
     begin
      h:=random(50)+10;
      a:=random(600)+20;
      b:=270 ;
      fir(a,b,h,cz,cl1,cl2);
     end;
    end;
 Begin
 grd:=detect;
 initgraph(grd,grm,'');
 Repeat
  setcolor(8);
  rectangle(0,getmaxy+200,getmaxx,getmaxy);
  setfillstyle(1,8);
  floodfill(5,getmaxy-5,8);
  setcolor(7);
  rectangle(0,0,getmaxx,getmaxy-200);
  setfillstyle(1,7);
  floodfill(5,5,7);
 Triangle(x,y,h,style,col1,col2);
 Forest(70,3,15,10);
   setcolor(8);
  rectangle(0,getmaxy+200,getmaxx,getmaxy);
  setfillstyle(1,8);
  floodfill(5,getmaxy-5,8);
   setcolor(7);
  rectangle(0,0,getmaxx,getmaxy-200);
  setfillstyle(1,7);
  floodfill(5,5,7);
    delay(5000);
   setcolor(2);
  rectangle(0,getmaxy+200,getmaxx,getmaxy);
  setfillstyle(1,2);
  floodfill(5,getmaxy-5,2);
   setcolor(9);
  rectangle(0,0,getmaxx,getmaxy-200);
  setfillstyle(1,9);
  floodfill(5,5,9);
 Triangle(x,y,h,style,col1,col2);
 Forest(70,14,10,3);
   setcolor(2);
  rectangle(0,getmaxy+200,getmaxx,getmaxy);
  setfillstyle(1,2);
  floodfill(5,getmaxy-5,2);
   setcolor(9);
  rectangle(0,0,getmaxx,getmaxy-200);
  setfillstyle(1,9);
  floodfill(5,5,9);
  x0:=getmaxX div 2 ;
  y0:=getmaxy div 2;
  r:=x0 div 2;
 for i:=-90 to 90 do
  begin
   x:=x0+round(r*sin(i*pi/180));
   y:=y0-round(r*cos(i*pi/180));
  Solnce(x,y,14);
   delay(100);
  Solnce(x,y,9);
  end;
   Until KeyPressed;
 closegraph;
end.
Серый777 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа которая делает кроссворд Иллидан Софт 15 02.12.2014 06:34
проект+программа по определению количества дней со дня рождения светлана74 Помощь студентам 1 30.03.2010 21:28
написать программу которая изображает на экране дисплея график beliy13 Помощь студентам 3 08.12.2009 19:19
программа, которая расчитывает зарплату. MyQwErTy Помощь студентам 10 06.04.2009 16:22
com-программа, которая блокирует клавиатуру Белка Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 26.11.2007 14:37