Модераторы: PILOT
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вращающейся куб, прога на паскале 
:(
    Опции темы
Delphin
  Дата 6.10.2002, 19:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 2.4.2002
Где: Кайеркан

Репутация: нет
Всего: нет



Ребята пожайлуста помогите!!!
Сражу предупреждаю работа за спасибо, так как денег нет.
Нужно сделать программу на паскалее с помощью графа. На играни должен появляться куб, которым бы я мог управлять с помощью курсоров: вверх - куб поварачивается снизу вверх, и т.д.
нужна не срочно, но желательно по быстрее.
Кто откликнется пишити на личную почту!!!

Заранее благодарен...
PM MAIL   Вверх
Vex
Дата 6.10.2002, 23:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


кацапосрачмученiкъ
****


Профиль
Группа: Экс. модератор
Сообщений: 3103
Регистрация: 28.3.2002
Где: strawberry fields

Репутация: нет
Всего: 88



У меня был исходник на паскале, там тоже вращающийся куб, правда написан только с помощью CRT, вещь классная, если хочешь, я на мыло тебе скину. Можешь переделать под свои нужды. Исходник написал не я потому это бесплатно.


--------------------
Слава Україні.
PM   Вверх
Devos
Дата 7.10.2002, 05:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Экс. модератор
Сообщений: 294
Регистрация: 28.7.2002
Где: Владимир

Репутация: нет
Всего: нет



Цитата(Vex @ 06.10.2002, 16:43)
Исходник написал не я потому это бесплатно.

:)


--------------------
Не надо спорить о достоинствах, а нужно всё достойно сочитать =)
PM MAIL ICQ   Вверх
Vex
Дата 7.10.2002, 05:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


кацапосрачмученiкъ
****


Профиль
Группа: Экс. модератор
Сообщений: 3103
Регистрация: 28.3.2002
Где: strawberry fields

Репутация: нет
Всего: 88



Цитата(Devos @ 06.10.2002, 21:39)
Цитата(Vex @ 06.10.2002, 16:43)
Исходник написал не я потому это бесплатно.

:)

Ну ведь раздел работа называется.  :)


--------------------
Слава Україні.
PM   Вверх
Chingachguk
Дата 7.10.2002, 06:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1232
Регистрация: 25.3.2002
Где: Москва

Репутация: нет
Всего: 18



Вращающийся куб - это было одно из первых моих "творений", когда я учился программировать(только чур не смеяться !):

Код

uses graph,crt;
var
j1,col,x,y,r,f1,i,j,k,u,regim,driver,x1,x2,x3,x4,x5,x6,x7,x8,z1,z2,z3,z4,z5,z6,z7,z8:integer;
a,f,t,f2,y0,y1,y2,dd:real;
label 1,2,3,4,5,6,7;
begin
a:=sqrt(2);
driver:=detect;
initgraph(driver,regim,'c:\tp\bgi');
t:=0;k:=0;f:=3.14/4;
x:=300;y:=260;r:=9;j:=1;
col:=8;j1:=7;
setbkcolor(2);
setcolor(1);
outtextxy(245,340,'DEAD  WORLD  INC.');
outtextxy(230,450,'PRESS  ESC  TO  EXIT');
setcolor(1);
line(200,300,400,300);
line(200,300,300,40);
line(400,300,300,40);
setfillstyle(j,j1);
floodfill(390,290,1);
repeat
x1:=round(r*(cos(3*t)-a*sin(3*t)*sin(2*t+f)));x2:=round(r*(cos(3*t)-a*sin(3*t)*sin(2*t+f+2*f)));
x3:=round(r*(cos(3*t)-a*sin(3*t)*sin(2*t+f+4*f)));x4:=round(r*(cos(3*t)-a*sin(3*t)*sin(2*t+f+6*f)));
z1:=round(r*a*cos(2*t+f));z2:=round(r*a*cos(2*t+f+2*f));
z3:=round(r*a*cos(2*t+f+4*f));z4:=round(r*a*cos(2*t+f+6*f));
x5:=-x1;x6:=-x2;x7:=-x3;x8:=-x4;z5:=-z1;z6:=-z2;z7:=-z3;z8:=-z4;
y0:=sin(3*t);y1:=sin(2*t+3.14/2)*cos(3*t);y2:=sin(2*t)*cos(3*t);
if y0>=0 then goto 1;
setcolor(col);
line(x+x1,y+z1,x+x2,y+z2);line(x+x1,y+z1,x+x4,y+z4);
line(x+x2,y+z2,x+x3,y+z3);line(x+x3,y+z3,x+x4,y+z4);
setfillstyle(j,12);
floodfill(x+round((x1+x3)/2),y+round((z1+z3)/2),col);
1:if y1<0 then goto 2;
setcolor(col);
line(x+x4,y+z4,x+x6,y+z6);line(x+x4,y+z4,x+x3,y+z3);
line(x+x5,y+z5,x+x6,y+z6);line(x+x5,y+z5,x+x3,y+z3);
setfillstyle(j,14);floodfill(x+round((x3+x6)/2),y+round((z3+z6)/2),col);
2:if y0<=0 then goto 3;
setcolor(col);
line(x+x5,y+z5,x+x6,y+z6);line(x+x5,y+z5,x+x8,y+z8);
line(x+x6,y+z6,x+x7,y+z7);line(x+x7,y+z7,x+x8,y+z8);
setfillstyle(j,13);
floodfill(x+round((x5+x7)/2),y+round((z5+z7)/2),col);
3:if y2>0 then goto 4;
setcolor(col);
line(x+x1,y+z1,x+x4,y+z4);line(x+x1,y+z1,x+x7,y+z7);
line(x+x6,y+z6,x+x7,y+z7);line(x+x6,y+z6,x+x4,y+z4);
setfillstyle(j,11);
floodfill(x+round((x4+x7)/2),y+round((z4+z7)/2),col);
4:if y2<=0 then goto 5;
setcolor(col);
line(x+x2,y+z2,x+x3,y+z3);line(x+x3,y+z3,x+x5,y+z5);
line(x+x5,y+z5,x+x8,y+z8);line(x+x2,y+z2,x+x8,y+z8);
setfillstyle(j,10);floodfill(x+round((x3+x8)/2),y+round((z3+z8)/2),col);
5:if y1>=0 then goto 6;
setcolor(col);
line(x+x2,y+z2,x+x1,y+z1);line(x+x8,y+z8,x+x7,y+z7);
line(x+x7,y+z7,x+x1,y+z1);line(x+x2,y+z2,x+x8,y+z8);
setfillstyle(j,9);
floodfill(x+round((x2+x7)/2),y+round((z2+z7)/2),col);
6:setfillstyle(1,j1);
{delay(100);}
k:=k+1;if k=200 then k:=0;
t:=k*6.28/200;
{x:=300+round(80*sin(2*t));}y:=200+round(68*cos(t));
sound(250+round(140*sin(t)));
delay(100);
nosound;
7:bar(x-25,y-25,x+25,y+25);
until keypressed;
closegraph;
end.



--------------------
I don't like the drugs (but the drugs like me). M.Manson.
PM MAIL ICQ   Вверх
Delphin
Дата 11.10.2002, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 2.4.2002
Где: Кайеркан

Репутация: нет
Всего: нет



всем спасибо, буду проверять, если че снова к вам:)))
PM MAIL   Вверх
Delphin
Дата 14.10.2002, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 2.4.2002
Где: Кайеркан

Репутация: нет
Всего: нет



Chingachguk
Твой код конечно работает бе проблем, но дело в том, что мне нужна прога вращением куба в которой я бы мог управлять курсороми клавы. Если не трудно подскажи как будет.
PM MAIL   Вверх
Chingachguk
Дата 17.10.2002, 01:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1232
Регистрация: 25.3.2002
Где: Москва

Репутация: нет
Всего: 18



Счас я на работе да и нету под рукой графических библиотек (graph.tpu).
Если будет время на выходных - попробую сделать...


--------------------
I don't like the drugs (but the drugs like me). M.Manson.
PM MAIL ICQ   Вверх
Delphin
Дата 18.10.2002, 23:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 2.4.2002
Где: Кайеркан

Репутация: нет
Всего: нет



Цитата(Chingachguk @ 16.10.2002, 22:43)
Если будет время на выходных - попробую сделать...

Буду ждать....
PM MAIL   Вверх
MuToGeN
Дата 19.10.2002, 00:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


Профиль
Группа: Модератор
Сообщений: 4379
Регистрация: 15.8.2002
Где: Москва

Репутация: нет
Всего: 32



Цитата(Delphin @ 18.10.2002, 16:11)

блин, я на паскале когда-то (очень давно) писал примитивный 3д-шный движок. был тормозной, но работал. исходники год назад где-то прое...л. обидно...


--------------------
Three pings for the token rings,
Five pings for the UNIX machines,
Hundred pings for the broken links,
One special ping to check them all
Through Simple Network Management Protocol!
PM MAIL ICQ   Вверх
Chingachguk
Дата 21.10.2002, 16:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1232
Регистрация: 25.3.2002
Где: Москва

Репутация: нет
Всего: 18



Цитата

Delphin Дата сообщения: 18.10.2002,16:11
Цитата (Chingachguk @ 16.10.2002,22:43)
Если будет время на выходных - попробую сделать...

Буду ждать....


Да, я начал делать, но я решил переписать все заново потому, что тот бред я не в силах поправить ...


--------------------
I don't like the drugs (but the drugs like me). M.Manson.
PM MAIL ICQ   Вверх
Chingachguk
Дата 4.11.2002, 04:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1232
Регистрация: 25.3.2002
Где: Москва

Репутация: нет
Всего: 18



Вот, держи. Правда, без закраски ;)

uses
 graph,crt;
const
 d = 50;
 color = 14;
type
 vector = array[1..3] of real;
const
 cubic: array[1..8,1..3] of integer =
   (( 1, 1,-1),( 1, 1, 1),( 1,-1, 1),( 1,-1,-1),
    (-1, 1,-1),(-1, 1, 1),(-1,-1, 1),(-1,-1,-1));
 S_XYZ: array[1..3] of integer = (240,200,200);
 a0: vector = (0,Pi/2,d);
 b0: vector = (Pi/2,Pi/2,d);
 c0: vector = (0,0,d);
var
 regim,driver: integer;
 key: char;
 i,j,p1,p2: integer;
 tempY,tempZ: real;
 phi,teta: real;
 a,b,c: vector;
 x,y,z: array[1..3] of real;
 points: array[1..8,1..3] of integer;
begin
 driver:=detect;
 initgraph(driver,regim,'c:\tp\bgi');
 outtextxy(245,420,'DEAD  WORLD  INC.');
 outtextxy(230,450,'PRESS  ESC  TO  EXIT');
 phi:=0;
 teta:=0;
 repeat
   setcolor(0);
   setfillstyle(1,0);
   bar(100,40,500,300);
   {Поворот в плоскости XY на угол phi}
   a[1]:=a0[3]*cos(a0[1]+phi)*sin(a0[2]);
   a[2]:=a0[3]*sin(a0[1]+phi)*sin(a0[2]);
   a[3]:=a0[3]*cos(a0[2]);
   b[1]:=b0[3]*cos(b0[1]+phi)*sin(b0[2]);
   b[2]:=b0[3]*sin(b0[1]+phi)*sin(b0[2]);
   b[3]:=b0[3]*cos(b0[2]);
   c[1]:=c0[3]*cos(c0[1]+phi)*sin(c0[2]);
   c[2]:=c0[3]*sin(c0[1]+phi)*sin(c0[2]);
   c[3]:=c0[3]*cos(c0[2]);
   {Поворот в плоскости YZ на угол teta}
   tempY:=a[2];
   tempZ:=a[3];
   a[2]:=tempY*cos(teta)+tempZ*sin(teta);
   a[3]:=tempY*sin(teta)+tempZ*cos(teta);
   tempY:=b[2];
   tempZ:=b[3];
   b[2]:=tempY*cos(teta)+tempZ*sin(teta);
   b[3]:=tempY*sin(teta)+tempZ*cos(teta);
   tempY:=c[2];
   tempZ:=c[3];
   c[2]:=tempY*cos(teta)+tempZ*sin(teta);
   c[3]:=tempY*sin(teta)+tempZ*cos(teta);
   for i:=1 to 8 do
     for j:=1 to 3 do
       points[i,j]:=S_XYZ[j]+round(cubic[i,1]*a[j]+cubic[i,2]*b[j]+cubic[i,3]*c[j]);
   setcolor(color);
   for i:=1 to 4 do
     begin
       p1:=i;
       p2:=i+1;
       if p2>4 then p2:=1;
       line(points[p1,1],points[p1,2],points[p2,1],points[p2,2]);
       line(points[p1+4,1],points[p1+4,2],points[p2+4,1],points[p2+4,2]);
       line(points[p1,1],points[p1,2],points[p1+4,1],points[p1+4,2]);
     end;
   key:=readkey;
   if key=#77 then phi:=phi-Pi/9;
   if key=#75 then phi:=phi+Pi/9;
   if key=#72 then teta:=teta-Pi/9;
   if key=#80 then teta:=teta+Pi/9;
 until key=#27;
 closegraph;
end.


--------------------
I don't like the drugs (but the drugs like me). M.Manson.
PM MAIL ICQ   Вверх
Delphin
Дата 4.11.2002, 06:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 2.4.2002
Где: Кайеркан

Репутация: нет
Всего: нет



Спасибо;=)
Щас попробую сделать чтобы невидимые линии были --------..
если что - опять сюда:)
PM MAIL   Вверх
Delphin
Дата 11.11.2002, 03:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 2.4.2002
Где: Кайеркан

Репутация: нет
Всего: нет



блн, что то не получается..
слушайте, а можно сделать невидимые линии в виде пунктиров и вращение по оси yz не колебательно а по кругу , как по оси xy...?
PM MAIL   Вверх
MuToGeN
Дата 15.11.2002, 18:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


Профиль
Группа: Модератор
Сообщений: 4379
Регистрация: 15.8.2002
Где: Москва

Репутация: нет
Всего: 32



Цитата(Delphin @ 10.11.2002, 19:36)
можно сделать невидимые линии в виде пунктиров

это делается с помощью матрицы глубины. т.е. для каждого пикселя на экране просчитываешь координату Z того, что на этом пикселе отображается. и когда уже окончательно рисуешь, то проверяешь по этой матрице, "верхний" это элемент или нет.


--------------------
Three pings for the token rings,
Five pings for the UNIX machines,
Hundred pings for the broken links,
One special ping to check them all
Through Simple Network Management Protocol!
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Обсуждение работы | Следующая тема »


 




[ Время генерации скрипта: 0.0546 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.