Помощь - Поиск - Пользователи - Календарь
Полная версия: Работать с помощью цифровой клавиатуры
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Anubis
Короче кто хочет размять свои умы! Задача на умность.

Составить программу, реализующую трехмерное преобразование с фигурой Октаэдр отражение относительной плоскостей xoz , yoz , xoz. Для всех вариантов фигура должна отоброжаться в конторном виде без удаления неведимых линий и уметь вращаться вокруг произвольной оси. Управление преоброзование по осям осуществляеться с помощью девяти клавиш на цифровой клавиатуре.

:p2:
APAL
Если октаэдр - это то что я думаю, то я это делал... надо искать исходники.

P.S.: Выложи картинку этого октаэдра. smile.gif
Guest
возьми простои восьмиугольник и получиш Октандер
BlackShadow
Так а проблема-то в чём?
Берёшь 8 (если меня не подводит память и окта, это 8) точек типа
=Record
x,y,z:Real
End;
Задаёшь уравнения поворота (это можно посмотреть именно в том учебнике).
Вспоминаешь про CRT.ReadKey или что тебе там больше по душе, ждёшь кнопку, ворочаешь точки, проецируешь на экран и соединяешь в нужном порядке...
Вот и всё вроде
APAL
Вспомнил, я "поворачивал" (если не ошибаюсь) додекаэдр.
Исходников пока не нашел... sad.gif


P.S.: или икосаэдр??...
Вобщем 12 вершин и 20 плоскостей.
Guest
А алгоритм этои программы
можно ли написать
что бы могло бы доити. blink.gif
pascal65536
Октаэдр выглядит примерно так:
http://www.rcio.rsu.ru/webp/works/pasichnik/oktaedr.htm
pascal65536
Массив с координатами точек фигуры: (X,Y,Z)=(0,0,3);(0,0,-3);(2,0,0);(0,2,0);(-2,0,0);(0,-2,0)
Ещё надо определиться спорядком прорисовывания граней.
Guest
Все так умеют писать но показать и написать алгоритм программы вам слабо докажите что вы сильный и знаете что это за программа а словами все так могут
Dark
Хм что ты пытаешся этими словами показать?

все это ОЧЕНЬ просто, потому что для поворота всего служат три функции,
которые я изложил в другой теме.

Я такое делал - если есть трудности спрашивай. А просто так я не хочу возиться
Guest
Да есть проблема у меня курсовая я не поиму как делать это и в какой ntmt ты это излогал покажи а лучше распиши алгоритм программы и все
просто у меня не получаеться что то . Блин sad.gif
Dark
Здесь найдешь формулы поворота, и массив куба.

http://pascal.net.ru/forum/index.php?showtopic=1968

План такой

1. преобразовать куб в октаэдр - повозись с координатами, и представь как он будет вращаться
2. написать процедуру рисования линий по массиву - думай сам. Формула преобразования 3d вида в 2d -
nx := 256*x div (z-Zoff)+Xoff
ny := 256*y div (z-Zoff)+Yoff

где Xoff Yoff это смещение объекта относительно экрана (для 13 режима - т.е. для 320*200 - и объект в центре, тогда Xoff=160 Yoff=100)

Zoff - это насколько объект далеко от нас.

3. Написать с использованием формул поворота (см. ссылку) процедуры поворота

4. Поворачивать
Dark
Забыл довавить - x,y,z - это координаты одной из точек, вот по одной точке и обрабатываешь
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.