![]() |
|
Модераторы: Rickert |
![]()
|
|
| Reptor |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: нет Всего: 0 |
Вопрос состоит в том что есть например набор точек и они соеденены прямыми (пусть это будет 4 точки ну соответственно фигура будет пусть прямоугольник). Эти точки задаються 2 координатами. С помощью каких инструментов можно преобразовать эти точки в 3 мерное представление или что б фигура которая получица была 3-ех мерная (или даже не 3 мерная а как будто лежала на плоскости ну если например смотреть на стол то его столешница как бы так лежит тоесть она не плоская как если на бумажке соденить 4 точки ) ну вот что то такого плана??
|
|||
|
||||
| Reptor |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: нет Всего: 0 |
Модераторы можно вас попросить что б вы переместили эту тему в раздел Программирование игр, графики и искусственного интеллекта. Мне кажеться этот вопрос туда больше подойдёт. Извеняюсь что сразу как то не сориентировался.
|
|||
|
||||
| Solomon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 471 Регистрация: 23.1.2006 Где: Украина Киев Репутация: нет Всего: 2 |
Ну с прямоугольником можно что то еще предумать, но вот с фигурой хоть немного посложное врятли что то выйдет... Т.е. я думаю можно какойто свой алгоритм сделать, но он будет работать только для конкретного случая, если я ошибась то пускай меня кто нибуть поправит.
Reptor, А можеш в общих чертах расказать для чего это требуется? -------------------- Если не идти до конца к поставленным целям и не пытатся их достигнуть, каким бы тяжелым не казался путь, то лучше и не ставь их перед собой, но тот кто не ставит перед собой труднодоступные цели, никогда не ощутит эйфорию настоящей победы... победы над миром... Соломон 2008 |
|||
|
||||
| Reptor |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: нет Всего: 0 |
Solomon, ну надо сделать прожку в которой задаются точки (2 координаты) потом они соидиняются (ну просто линиями) и получается обычный наобор точек который соединён линиями на плоскости. Вот а теперь зная точки просто надо что б то что получилось выглядело как 3Д. Вот такая задача
|
|||
|
||||
| Solomon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 471 Регистрация: 23.1.2006 Где: Украина Киев Репутация: нет Всего: 2 |
Понял что ничего не понял ))
т.е. линиями соединяются в той последовательности в который мы их и ввели? Сомневаюсь что при каких либо расскладах все эт будет выглядеть как 3Д. Я, если чесно, немогу себе это представить. -------------------- Если не идти до конца к поставленным целям и не пытатся их достигнуть, каким бы тяжелым не казался путь, то лучше и не ставь их перед собой, но тот кто не ставит перед собой труднодоступные цели, никогда не ощутит эйфорию настоящей победы... победы над миром... Соломон 2008 |
|||
|
||||
| Reptor |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: нет Всего: 0 |
Solomon, можно сказать что задача стоит таким образом что просто надо сделать 3 мерную фигуру зная 2-ух мерные координаты точек. например как в 3Д studio Max есть вид с боку и есть 3Д. Ну вот пример в прикрепленом файле. Мне надо получить то что в окне Prespective
Присоединённый файл ( Кол-во скачиваний: 10 )
primer.rar 12,26 Kb |
|||
|
||||
| Solomon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 471 Регистрация: 23.1.2006 Где: Украина Киев Репутация: нет Всего: 2 |
Reptor, Это все хорошо конечно...
Там нет ничего подобного c тем что пытаешся сделать ты... Если делать перевод 3D-2D это просто, а вот наоборот практически не осуществимо, если конечно это не 100% что будет простой прямоугольник. -------------------- Если не идти до конца к поставленным целям и не пытатся их достигнуть, каким бы тяжелым не казался путь, то лучше и не ставь их перед собой, но тот кто не ставит перед собой труднодоступные цели, никогда не ощутит эйфорию настоящей победы... победы над миром... Соломон 2008 |
|||
|
||||
| Reptor |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: нет Всего: 0 |
Solomon, хорошо а как просто нарисовать такую картинку как та что в окне Prespective ?? без преобразования уже 2Д->3Д.
Добавлено через 1 минуту и 28 секунд Ребята може ещё кто то присоеденится к беседе? может у кого есть какие идеи? |
|||
|
||||
| Solomon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 471 Регистрация: 23.1.2006 Где: Украина Киев Репутация: нет Всего: 2 |
Reptor, Ну можно как это делается в 3Д Максе задаеш последовательно точки, которые имеют 3 координаты и соответственно последовательно соединяеш линиями...
Хотя стой... что то придумать я думаю можно будет, хотя опять же только для плоских фигур, их можно будет покрутить в 3д простванстве, но это только с плоскими выдет.. тип прямоугольника или ромба, и при этом ему желательно сделать заливку и если есть возможность то тень... тогда я думаю что то может выйти более мение нормальное.. -------------------- Если не идти до конца к поставленным целям и не пытатся их достигнуть, каким бы тяжелым не казался путь, то лучше и не ставь их перед собой, но тот кто не ставит перед собой труднодоступные цели, никогда не ощутит эйфорию настоящей победы... победы над миром... Соломон 2008 |
|||
|
||||
| Reptor |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: нет Всего: 0 |
Solomon, да как раз это и надо что б фигура была плоская и 3Д. Только желательно что б это был многогранник а не только прямоугольник. Вот а всё остальное:
это то что надо Только вот это хорошо что теоретически это возможно но я понятия не имею как это реализовать? с помощью каких инструментов?? Добавлено через 1 минуту и 37 секунд да может есть что почитать на эту тему? и примеры ? |
||||||
|
|||||||
| Solomon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 471 Регистрация: 23.1.2006 Где: Украина Киев Репутация: нет Всего: 2 |
ты это с помощу чего хочеш реализовать? Open, Директ,...?
-------------------- Если не идти до конца к поставленным целям и не пытатся их достигнуть, каким бы тяжелым не казался путь, то лучше и не ставь их перед собой, но тот кто не ставит перед собой труднодоступные цели, никогда не ощутит эйфорию настоящей победы... победы над миром... Соломон 2008 |
|||
|
||||
| Reptor |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: нет Всего: 0 |
Solomon, Да вот я даже не знаю а что луче? Ну скорее всего это будет openGL так как я на Java пишу. Да OpenGL.
|
|||
|
||||
| DragonFire |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 14.8.2005 Где: Москва Репутация: 5 Всего: 9 |
Берешь OpenGL иницитализируешь (примеров куча), задаешь режим воспроизведения - перспективный, рисуешь фигуру в трехмерном пространстве но чтобы все координаты z были равны 0. ПОворачиваешь фигуру по всем осям на 45 градусов и получаешь то что тебе нужно... Для наглядности можно будет прикрутить скажем плоскость xy (z=0) и тогда получится как будто твоя линия лежит на поверхности того же стола как ты и хотел.
Доступно?) Сорь раньше не заглянул в тему... Добавлено через 4 минуты и 46 секунд Если надобно могу выделить 15 минут и написать исходники, но учти что я пишу на дельфях... Если интересно сразу скажи предпочитаешь ли ты разбираться в коде VCL или чистом API.. Если вообще не изучал OpenGL то сразу во все въехать будет проблематично) |
|||
|
||||
| Reptor |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: нет Всего: 0 |
DragonFire, да огромное спасибо. Выдели плиз 15 мин. Я думаю мне тут всёровно или это VCL или API меня больше Open интересует. На чём тебе больше нравится давай VCL. Можеш ещё посоветовать литературку и примеры так как я опен совсем не знаю. Вот надо начинать и сразу с такой задачи.
Добавлено через 1 минуту и 21 секунду DragonFire, оттолкнусь от твоего примера. Разберу что и как буду очень благодарен за помощь. |
|||
|
||||
| DragonFire |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 14.8.2005 Где: Москва Репутация: 5 Всего: 9 |
Создай чистый проект переименуй форму в frmGL присвой ей обработчики событий Create, Destroy, Resize, Paint и запускай)))
Надеюсь это то что тебе нужно... КОмменты почти к каждой строке расставил разберешься...
Добавлено через 2 минуты и 50 секунд А ну и юнит переименуй с юнита ULook в Unit1 |
|||
|
||||
| Reptor |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: нет Всего: 0 |
DragonFire, запустил всё работает. Огромное спасибо да это то что надо
Посоветуй пожалуста ещё литературку хорошую. |
|||
|
||||
| DragonFire |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 14.8.2005 Где: Москва Репутация: 5 Всего: 9 |
ну по OpenGL много хорошей литературы.. на форуме много вопросов разобрано. Поворот масштабирование - это все достаточно быстро освоишь...
Я читал вначале Краснова "OpenGL. Графика в проектах Delphi". Вот лови: http://pv.bstu.ru/graphics/books/opengl_1.djvu Это сообщение отредактировал(а) DragonFire - 21.11.2007, 14:46 |
|||
|
||||
| Reptor |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: нет Всего: 0 |
DragonFire, хорошо спасибо. Буду потихоньку начинать читать и разбираться что и как.
|
|||
|
||||
| Reptor |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: нет Всего: 0 |
а можно мне как то поменять систему координат?? что б не было
glVertex3f(1.0, 1.0, 0); glVertex3f(-1.0, 1.0, 0); а было как стандартно glVertex3f(60, 30, 0); glVertex3f(80, 90, 0); |
|||
|
||||
| DragonFire |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 14.8.2005 Где: Москва Репутация: 5 Всего: 9 |
а что тебе мешает написать
glVertex3f(1/60, 1/30, 0); glVertex3f(1/80, 1/90, 0); Добавлено через 1 минуту и 29 секунд тогда все будет в пределах от -1 до 1)) А если не хочешь так то делай перед риссование уменьшение масштаба glScalef(0.1,0.1,0.1); (уменьшить в 10 раз нарисованное ниже) Это сообщение отредактировал(а) DragonFire - 21.11.2007, 22:06 |
|||
|
||||
| Reptor |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: нет Всего: 0 |
что то я не понимаю почему линия (картинка в атаче) идёт под углом
Присоединённый файл ( Кол-во скачиваний: 7 )
qqq.rar 5,84 Kb |
|||
|
||||
| DragonFire |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 14.8.2005 Где: Москва Репутация: 5 Всего: 9 |
Делай так.. QUADS рисует тока четырехугольники... |
|||
|
||||
| Reptor |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: нет Всего: 0 |
DragonFire, да я понял но я ведь пользуюсь (в том коде что привёл выше) GL_POLYGON вот в чём не ясность почему он рисует линию под углом? |
|||
|
||||
| DragonFire |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 14.8.2005 Где: Москва Репутация: 5 Всего: 9 |
разбиратся ща некогда, а GL_POLYGON я вообще не использую...
Это несколько нестандартный подход, замедляющий работу, лучше все выводи треугольниками... Если всеже нужно именно GL_POLYGON, то ночью послезавтра могу покопать и сказать что не так... |
|||
|
||||
| Reptor |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: нет Всего: 0 |
DragonFire, да было б очень здорово. Я что то совсем не могу понять что не так
|
|||
|
||||
| DragonFire |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 14.8.2005 Где: Москва Репутация: 5 Всего: 9 |
Ну просто у меня через GL_POLYGON вообще криво отображает все опенжл... Бъет на квадраты по 4 точки... Так что хз...
А стандартный и самый быстрый метод вывода плоскости на экран - это разбить ее на треугольники и выводить по треугольникам.. Но это я так.. прирост скорости заметен тока при большом количестве примитивов... |
|||
|
||||
| Reptor |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: нет Всего: 0 |
DragonFire, ну а всё таки как это треугольниками?
|
|||
|
||||
| DragonFire |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 14.8.2005 Где: Москва Репутация: 5 Всего: 9 |
ну хочешь ты вывести плоскость скажем квадратную - берешь и рисуешь 2 треугольника прямоугольных - вместо одного квадрата... И т.д.
|
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: нет Всего: 250 |
||||
|
||||
| DragonFire |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 14.8.2005 Где: Москва Репутация: 5 Всего: 9 |
У мну тож не то совсем отображается, но возможно OpenGL багнутый на компе стоит....
|
|||
|
||||
| Reptor |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: нет Всего: 0 |
mes, да вот в том то и дело что не может. Мне совсем не понятно почему так.
|
|||
|
||||
| Gongex |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 1.1.2008 Репутация: нет Всего: 0 |
делал на днях трехмерный куб,вращающийся...Сначала сделал 4 точки,потом соединил линиями,и начал двигать их.Получилась плоскость,а сделать из 4-х точек куб,это так:
если у тебя есть x(1,2,3,4) и y(1,2,3,4) и плоскость которая "лежит на столе": ddx = qx(2) - qx(3) + qx(3) - qx(1) ddy = qy(2) - qy(3) + qy(3) - qy(1) ddx это ровная "высота"от х1 и х2 линии вниз Line (x(3) - ddx, y(3) + ddy)-(x(3) , y(3) ) Line (x(1) - ddx, y(1) + ddy)-(x(1) , y(1) ) Line (x(2) - ddx, y(2) + ddy)-(x(2) , y(2) ) Line (x(4) - ddx, y(4) + ddy)-(x(4) , y(4) ) вторая спроецированная плоскость Line (x(3) - ddx, y(3) + ddy)-(x(1) - ddx, y(1) + ddy) Line (x(1) - ddx, y(1) + ddy)-(x(2) - ddx, y(2) + ddy) Line (x(2) - ddx, y(2) + ddy)-(x(4) - ddx, y(4) + ddy) Line (x(4) - ddx, y(4) + ddy)-(x(3) - ddx, y(3) + ddy) извини это при условии что известны 4 точки, 4 точки расположены так:вверху слева х1 справа х2,внизу слева х3,справа х4 если у тебя прога на vb давай код я спроецирую Это сообщение отредактировал(а) Gongex - 2.1.2008, 21:28 |
|||
|
||||
| Gongex |
|
||||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 1.1.2008 Репутация: нет Всего: 0 |
вот вычисления чтобы из двух точек получить квадрат:
от таймера: Cls это эффект жвижения квадрата
потом эти х1 и х2 крути как хочешь,куб должен быть ровным Добавлено @ 23:45
у DragonFire такой код длиннющий,уверен все можно сделать 10-ю строками Gongex,
Это сообщение отредактировал(а) arilou - 11.1.2008, 13:00 |
||||||||
|
|||||||||
| DragonFire |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 14.8.2005 Где: Москва Репутация: 5 Всего: 9 |
Gongex,
Процедуру рисования возможно и можно упросить, только вот код не для оптимизированного движка выкладывался а как наглядный пример, насколько я помню) |
|||
|
||||
![]()
|
| Правила форума "Программирование игр, графики и искуственного интеллекта" | |
|
|
НА ЗЛОБУ ДНЯ: Дорогие посетители, прошу обратить внимание что новые темы касающиеся новых вопросов создаются кнопкой "Новая тема" а не "Ответить"! Любые оффтопиковые вопросы, заданные в текущих тематических темах будут удалены а их авторы, при рецедиве, забанены.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rickert. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Программирование игр, графики и искусственного интеллекта | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |