Вторник, 07.01.2025
Pascal 4 All
[ · Новые сообщения · Участники · Правила форума · Поиск · RSS ]

 

  • Страница 1 из 1
  • 1
Модератор форума: Seqular, Pavel  

Дайте кто нить плиз....
Oleg170Дата: Четверг, 13.12.2007, 08:23 | Сообщение # 1
Новичок
Группа: Пользователи
Сообщений: 2
Репутация: 0
Замечания: 0%
Статус: Offline
нормальный звук(написаныый с помощью подуля CRT), и движущую картинку(написаную с помощью модуля ГРАФА).. надо срочно на зачет, помогите....

Мир - любой ценой....
 
SeqularДата: Четверг, 13.12.2007, 20:17 | Сообщение # 2
Хранитель
Группа: Администраторы
Сообщений: 859
Репутация: 35
Статус: Offline
Oleg170, Нормальный звут, т.е. записаный Sound(x); NoSound;? =) Поэкспериментируй, наиграй какую-нибудь мелодию...
А вот тебе кое-какая анимация.
Code
program Kub;
uses Graph, Crt;

procedure Kubik;
  label
   next;
  type
   cube=array[1..8] of record x,y,z:integer
                       end;
  const
  verts:cube=((x: 1; y: 1; z: 1),(x: 1; y: 1; z:-1),
              (x: 1; y:-1; z: 1),(x: 1; y:-1; z:-1),
              (x:-1; y: 1; z: 1),(x:-1; y: 1; z:-1),
              (x:-1; y:-1; z: 1),(x:-1; y:-1; z:-1));
  g:array[1..6, 1..4] of shortint=((1,2,4,3),(1,2,6,5),
                    (1,3,7,5),(3,4,8,7),
                    (2,4,8,6),(5,6,8,7));
  var
   Alfa,Beta,Gamma,Teta,DT:real;
   c:cube;

procedure Povorot(var x,y,z:integer);
  var
    cosT, sinT, One_cosT, AOne_cosT, BOne_cosT,GsinT:real;
    xn,yn,zn:integer;
  begin
    cosT:=cos(Teta);
    sinT:=sin(Teta);
    One_cosT :=1.0-cosT;
    AOne_cosT:=Alfa*One_cosT;
    BOne_cosT:=Beta*One_cosT;
    GsinT:=Gamma*sinT;

    xn:=trunc(x*(cosT+Alfa*AOne_cosT)+y*(GsinT+Beta*AOne_cosT)+
       z*(-Beta*sinT+Gamma*AOne_cosT));

    yn:=trunc(x*(-GSinT+Beta*AOne_cosT)+y*(cosT+Beta*BOne_cosT)+
       z*( Alfa*sinT + Gamma * BOne_cosT));

    zn:=trunc(x*(Beta*sinT+Gamma*AOne_cosT)+y*(-alfa*sinT+Gamma*BOne_cosT)+
       z*(cosT+Gamma*Gamma*One_cosT));

    x:=xn; y:=yn; z:=zn;
  end;

  function minz:integer;
  var j,m:integer;
  begin
    m:=1;
    for j:=2 to 8 do
      if c[j].z<c[m].z then m:=j;
    minz:=m;
  end;

var
   Pnts:array[1..5] of record x,y:integer
                       end;
   min,x0,y0,a,i,j,k:integer;
   page:word;
begin
  page:=0;
  x0:=320;
  y0:=150;
  a:=60;
  Alfa:=0.9;
  Beta:=0.1;
  Gamma:=sqrt(1.0-Alfa*Alfa-Beta*Beta);
  Teta:=0;
  DT:=2*Pi/100;
  for i:=1 to 8 do
   begin
    c[i].x:=verts[i].x*a;
    c[i].y:=verts[i].y*a;
    c[i].z:=verts[i].z*a;
    povorot(c[i].x,c[i].y,c[i].z)
   end;
  min:=MinZ;
  SetVisualPage((Page+1)mod 2);
  for k:=0 to 2500 do
   begin
     delay(3000);
     SetActivePage(page);
     for j:=1 to 6 do
       begin
            for i:=1 to 4 do if min=g[j,i] then goto next;
            for i:=1 to 4 do
                       begin
                       Pnts[i].x:=x0+c[g[j,i]].x;
                       Pnts[i].y:=y0+trunc(0.775*c[g[j,i]].y)
                       end;
         line(pnts[1].x,pnts[1].y,pnts[2].x,pnts[2].y);
         line(pnts[2].x,pnts[2].y,pnts[3].x,pnts[3].y);
         line(pnts[3].x,pnts[3].y,pnts[4].x,pnts[4].y);
         line(pnts[1].x,pnts[1].y,pnts[4].x,pnts[4].y);
         next:
       end;
     SetVisualPage(Page);
     SetActivePage((Page+1)mod 2);
     for i:=1 to 8 do
       begin
         c[i].x:=verts[i].x*a;
         c[i].y:=verts[i].y*a;
         c[i].z:=verts[i].z*a;
         povorot(c[i].x,c[i].y,c[i].z)
       end;
     min:=MinZ;
     SetFillStyle(SolidFill, Black);
     Bar(0,0,x0*2,y0*2);
     Teta:=Teta+DT;
     Page:=(Page+1)mod 2;
     if KeyPressed then
     exit;
     end;
end;
var drv,mode:integer;
begin
   drv:=EGA;
   mode:=EGAHI;
   InitGraph(drv,mode,'C:\PASCAL\bgi');
   Kubik;
   CloseGraph;
end.


Поддерживаю также проект сообщество молодых сисадминов
 
PavelДата: Воскресенье, 16.12.2007, 01:29 | Сообщение # 3
Приближенный
Группа: Модераторы
Сообщений: 210
Репутация: 17
Замечания: 0%
Статус: Offline
Знакомая анима! 3D cube. DXdiag отдыхает
 
  • Страница 1 из 1
  • 1
Поиск:

Copyright MyCorp © 2025
Используются технологии uCoz
javascript:;" rel="nofollow" onclick="loginPopupForm(); return false;