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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.04.2012, 19:36   #1
yan4ik
Новичок
Джуниор
 
Регистрация: 04.04.2012
Сообщений: 2
Восклицание построение геометрических объектов в пространстве

Передо мной стоит задача, разработать программу в Паскале, которая строит геометрическую фигуру( треугольную пирамиду) в пространстве по заданным координатам. Вводится 4 точки, у каждой по 3 координаты (x,y,z). прошу, оочень нужно, хотя бы идею подкинуть!
yan4ik вне форума Ответить с цитированием
Старый 05.04.2012, 09:40   #2
rubius2008
Форумчанин
 
Регистрация: 19.03.2010
Сообщений: 409
По умолчанию

1. Нужно определиться с осями координат (x,y,z), как будут направлены.
2. Далее переводите координаты точки (x,y,z) в координаты экрана (x0,y0) и рисуете.
Есть вопросы, пишите в ЛС.
rubius2008 вне форума Ответить с цитированием
Старый 05.04.2012, 16:30   #3
yan4ik
Новичок
Джуниор
 
Регистрация: 04.04.2012
Сообщений: 2
По умолчанию

в том то и проблема состоит, что я не знаю как перевести координаты точки (x,y,z) в координаты экрана (x0,y0)!
yan4ik вне форума Ответить с цитированием
Старый 05.04.2012, 17:09   #4
JOON1K
Новичок
Джуниор
 
Регистрация: 04.04.2012
Сообщений: 2
По умолчанию

проводишь с помощью команды line линии,т.е чертишь треугольник и всё
JOON1K вне форума Ответить с цитированием
Старый 05.04.2012, 17:42   #5
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

Владлена великодушно поделилась исходником спецом для вас. Кликни на меня. Настоятельно рекомендую прочитать всю тему. Останется лишь переделать саму фигуру, передачу вместо 12-ти точек, только 5-ти. Ну и найти аналоги функций для паскаля.
Если помог, проси поставить минус. Будь оригинален!

Последний раз редактировалось Rin; 05.04.2012 в 17:44.
Rin вне форума Ответить с цитированием
Старый 06.04.2012, 01:01   #6
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Вот мой вариантик
Писал уже давно (больше года назад).
Код - супер-топорный. Зато рисует
Код:
uses crt,graph;
type
points=record
h,r,f:real;end;
var
d,m,i,t,x2,y2:integer;
c:char;
f1,f2:real;
a:array [1..8] of points;
 
 
{преобразует координаты для поворота в плоскости экрана}
procedure rotate(x1,y1:integer);
begin            
x2:=round((x1-320)*cos(f2)-(y1-240)*sin(f2))+320;
y2:=round((x1-320)*sin(f2)+(y1-240)*cos(f2))+240;
end;
 
 
{отрисовывает одну линию с правильными координатами}
procedure draw(x,y,i,j:integer;f:real);
begin
rotate(round(x+a[i].r*cos(a[i].f+f)),round(y-a[i].h+0.3*a[i].r*sin(a[i].f+f)));
moveto(x2,y2);
rotate(round(x+a[j].r*cos(a[j].f+f)),round(y-a[j].h+0.3*a[j].r*sin(a[j].f+f)));
lineto(x2,y2);
end;
 
 
{отрисовывает весь кубик}
procedure drawcube(f:real);
begin
for i:=1 to 4 do draw(320,240,i,i+4,f);
for i:=1 to 3 do draw(320,240,i,i+1,f);
draw(320,240,4,1,f);
for i:=5 to 7 do draw(320,240,i,i+1,f);
draw(320,240,8,5,f);
end;
 
begin
d:=detect;
m:=2;
initgraph(d,m,'c:\bgi');
cleardevice;
 
{задание цилиндрических координат}
for i:=1 to 4 do begin
a[i].h:=-50*sqrt(2);
a[i].r:=100;
a[i].f:=pi/2*(i-1);end;
 
for i:=5 to 8 do begin
a[i].h:=50*sqrt(2);
a[i].r:=100;
a[i].f:=pi/2*(i-1);end;
 
f1:=0;
f2:=0;
drawcube(f1);
 
 
{управление поворотом , A - влево, D - вправо, S - по часовой стрелке, W - против часовой стрелки}
repeat
c:=readkey;
if c='a' then f1:=f1+0.2;
if c='d' then f1:=f1-0.2;
if c='w' then f2:=f2+0.2;
if c='s' then f2:=f2-0.2;
if f1>2*pi then f1:=f1-2*pi;
if f1<-2*pi then f1:=f1+2*pi;
if f2>2*pi then f2:=f2-2*pi;
if f2<-2*pi then f2:=f2+2*pi;
cleardevice;
drawcube(f1);
until c=#27;
end.
(Сейчас стал проверять, какая-то "кодовая каша", да еще и Паскаль не работает в win 7)
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 06.04.2012 в 01:15.
BDA вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Распознавание геометрических образов) aly-lucenko Помощь студентам 2 12.04.2011 23:05
Построение разверток геометрических фигур Nemez Мультимедиа в Delphi 3 29.06.2010 10:52
Как реолизовать построение отрезка в 3D пространстве, как в SketchUp? Dima6120 Мультимедиа в Delphi 6 23.06.2010 19:55
построение диаграммы в пространстве (эксель) alex(21) Помощь студентам 0 28.12.2009 17:50
Демонстрационная программа выполнения геометрических преобразований трехмерных объектов true_men Помощь студентам 6 19.11.2007 20:11