Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Изометрия в Паскале! 
:(
    Опции темы
roalang
Дата 27.11.2008, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



В универе дали такое задание: написать программу изображения многогранника, вращающегося вокруг осу ОУ. Фигура гексаэдр (куб).  Как сделать, чтобы невидно было невидимых линий. И грани рисовать закрашенными разными цветами. 
Куб сделать сделала, а вот дальше не знаю как.
Код

program Paralel;
USES Crt, Graph; 
VAR Gd, Gm: Integer;
    par: array[1..8, 1..3] of real;
    rebra: array[1..12, 1..2] of integer;
    i: integer;
    ch: char;

PROCEDURE Draw;
VAR x1,x2,y1,y2: integer;
    ver1,ver2: integer;
BEGIN
   For i:=1 To 12 Do Begin
       ver1:=rebra[i,1];
       ver2:=rebra[i,2];
       x1:=round(par[ver1,1])+320;
       y1:=240-round(par[ver1,2]);
       x2:=round(par[ver2,1])+320;
       y2:=240-round(par[ver2,2]);
       line(x1,y1,x2,y2);
   End;
END;

PROCEDURE VrachOX(Ugol: real);
VAR y,z: real;
BEGIN
   For i:=1 To 8 Do Begin
       y:=par[i,2];
       z:=par[i,3];
       par[i,2]:=y*cos(Ugol)-z*sin(Ugol);
       par[i,3]:=y*sin(Ugol)+z*cos(Ugol);
   End;
End;

PROCEDURE VrachOY(Ugol: real);
VAR x,z: real;
BEGIN
   For i:=1 To 8 Do Begin
       x:=par[i,1];
       z:=par[i,3];
       par[i,1]:=x*cos(Ugol)+z*sin(Ugol);
       par[i,3]:=-x*sin(Ugol)+z*cos(Ugol);
   End;
END;

PROCEDURE VrachOZ(Ugol: real);
VAR x,y: real;
BEGIN
   For i:=1 To 8 Do Begin
       x:=par[i,1];
       y:=par[i,2];
       par[i,1]:=x*cos(Ugol)-y*sin(Ugol);
       par[i,2]:=x*sin(Ugol)+y*cos(Ugol);
   End;
END;

BEGIN

   par[1,1]:=0;    par[1,2]:=0;    par[1,3]:=0;
   par[2,1]:=0;    par[2,2]:=110;  par[2,3]:=0;
   par[3,1]:=175;  par[3,2]:=110;  par[3,3]:=0;
   par[4,1]:=175;  par[4,2]:=0;    par[4,3]:=0;
   par[5,1]:=0;    par[5,2]:=0;    par[5,3]:=150;
   par[6,1]:=0;    par[6,2]:=110;  par[6,3]:=150;
   par[7,1]:=175;  par[7,2]:=110;  par[7,3]:=150;
   par[8,1]:=175;  par[8,2]:=0;    par[8,3]:=150;

   rebra[1,1]:=1;   rebra[1,2]:=2;
   rebra[2,1]:=2;   rebra[2,2]:=3;
   rebra[3,1]:=3;   rebra[3,2]:=4;
   rebra[4,1]:=4;   rebra[4,2]:=1;
   rebra[5,1]:=5;   rebra[5,2]:=6;
   rebra[6,1]:=6;   rebra[6,2]:=7;
   rebra[7,1]:=7;   rebra[7,2]:=8;
   rebra[8,1]:=8;   rebra[8,2]:=5;
   rebra[9,1]:=1;   rebra[9,2]:=5;
   rebra[10,1]:=2;  rebra[10,2]:=6;
   rebra[11,1]:=3;  rebra[11,2]:=7;
   rebra[12,1]:=4;  rebra[12,2]:=8;

  Gd:= detect;
Initgraph(Gd, Gm, 'c:\Bp\bgi');
   If GraphResult <> grOk Then
      Halt(1);

   SetBkColor(Black);
   ClearDevice;
   VrachOX(pi/12);
   VrachOY(pi/12);
   VrachOZ(pi/12);
   While ch<>#27 Do Begin
      ClearDevice;
      Draw;
      OuttextXY(10,450,'Press <1> for rotation');
      OuttextXY(10,465,'Press <Esc> to Exit');
      ch:=readkey;
      Case ch Of
      '1': VrachOY(pi/15);
      End;
   End;
   CloseGraph;
END.

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




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


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

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