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

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

Вернуться   Форум программистов > Работа для программиста > Фриланс
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2013, 15:31   #1
танюшаff
Новичок
Джуниор
 
Регистрация: 16.05.2010
Сообщений: 0
Печаль Вычерчивание проволочной модели трапеции(Delphi 10)

программа для вычерчивания куба, нужно переделать под трапецию(обязательно в Delphi10),на форме должны быть кнопки масштабирования и поворота, за денюжку возьмется кто ?
Код:
uses graph;
const h=100;
var x,GrD,GrM: integer;
EO,dst:integer;
fi,teta:integer;
f,t:real;
x0,y0:word;
v11,v12,v13,
v21,v22,v23,
    v32,v33,
        v43:real;
px,py:word;
graphDriver,GraphMode:integer;
function ex(x:integer):word;
begin ex:=x+x0; end;
Function ey(y:integer):word;
begin ey:=GetMaxY-(y0+y); end;
Procedure koeff;
var k, th,ph:real;
begin
k:=Pi/180;
th:=k*teta; ph:=k*fi;
v11:=-sin(th); v12:=-cos(ph)*cos(th); v13:=-sin(ph)*cos(th);
v21:=cos(th);  v22:=-cos(ph)*sin(th); v23:=-sin(ph)*sin(th);
               v32:=sin(ph);         v33:=-cos(ph);
                                     v43:=eo;
end;
Procedure Perspective(x,y,z: integer; var px,py:word);
var c1,c2:word;
xe,ye,ze:real;
Begin
 c1:= GetMaxX div 2;
 c2:= GetMaxY div 2;
{координаты глаза } xe:=v11*x+v21*y;
                  ye:=v12*x+v22*y+v32*z;
                  ze:=v13*x+v23*y+v33*z+v43;
{экранные координаты} px:=Round(dst*xe/ze+c1);
                      py:=Round(dst*ye/ze+c2);
end;
Procedure dw (x,y,z:integer);
Begin
 perspective(x,y,z,px,py);
 lineto(px,py);
{ lineto(ex(px),ey(py)); }
end;
Procedure mv(x,y,z:integer);
begin
 perspective(x,y,z,px,py);
 moveto(px,py);
 {moveto(ex(px),ey(py));}
end;
Begin
writeln('Eo='); Readln(eo);
writeln('fi=');Readln(fi);
writeln('Teta='); Readln(teta);
writeln(расстояние наблюдатель - экран'); readln(dst);
graphDriver:=detect;
initgraph(graphDriver,graphMode,'');
x:=GraphResult;
If x=GrOk Then
  Begin
  X0:=GetMaxx div 2;
  Y0:=GetMaxY div 2;
  koeff{(Eo,teta,fi)};
  mv(h,-h,-h);dw(h,h,-h);
  dw(-h,h,-h);
  dw(-h,h,h);
  dw(-h,-h,h);
  dw(h,-h,h);
  dw(h,-h,-h);
  mv(h,h,-h); dw(h,h,h);
  dw(-h,h,h);
  mv(h,h,h);dw(h,-h,h);
  mv(h,-h,-h); dw(-h,-h,-h);
  dw(-h,h,-h);
  mv(-h,-h,-h);dw(-h,-h,h);
  {  Line(100,120, 300,300);}
  End
Else
  Writeln('x=',x);
  Readln;
end.

Последний раз редактировалось Stilet; 02.06.2013 в 16:03.
танюшаff вне форума Ответить с цитированием
Старый 02.06.2013, 16:04   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Кошмар... Какую только гадость преподы не дают...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.06.2013, 08:35   #3
Larboss
Недо
Участник клуба
 
Регистрация: 11.08.2011
Сообщений: 1,394
По умолчанию

"обязательно в Delphi10" - а почему именно в 10-ой нужно?
С помощью программирования можно разбогатеть и изменить мир к лучшему (с) Бьерн Страуструп
Larboss вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ERwin BPwin Rational Rose UML модели бизнес-процессов, логическая и физическая модели КОНТРОЛЬНАЯ РАБОТА iJohnny Фриланс 0 05.06.2012 05:52
Программа, которая находит площадь трапеции, квадрата и прямоугольника по введённым длинам сторон (на Delphi) orange_wot Помощь студентам 3 10.04.2012 16:42
Площадь криволинейной трапеции (Delphi) Иришка-солнышко Помощь студентам 1 03.07.2011 17:36
Построение проволочной модели IvaneOK Паскаль, Turbo Pascal, PascalABC.NET 1 13.04.2011 22:57
Паскаль. Вычерчивание графических примитивов. uropb992 Помощь студентам 3 08.06.2010 17:02