Форум программистов, компьютерный форум, киберфорум
3D моделирование
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
320 / 280 / 109
Регистрация: 27.09.2010
Сообщений: 1,058

Перевод координат

16.09.2012, 18:00. Показов 3282. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. У меня такой вопрос. Какие нужны формулы для переноса 3D в 2D. Задача стоит следующая: есть плоскость с 3D объектами. Есть камера, знаем высоту и ширину экрана пользователя, а также координаты камеры.Нужно преобразовать то, что "видит" камера в двумерный массив "цветов", что бы в дальнейшем сохранить в картинку.Вопрос, как это сделать? (Мне кажется такой же процесс происходит при рендере в 3Dmax)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.09.2012, 18:00
Ответы с готовыми решениями:

Перевод координат в другую систем координат
как перевести плоские координаты хyz в другую систему координат x1y1z1 по трем и более точкам?

Перевод координат NMEA
Добрый вечер, прошу совета в построении алгоритма перевода координат NMEA (ddmm.mmmm). Нужно привезти их в градусы. Есть формула...

Перевод из экранных координат (от -1 до +1)
Здравствуйте Не уверен что верно употребляю "экранные", на всякий случай уточню: в OpenGL это NDC (Normalized Device Coordinates)...

15
 Аватар для Hrethgir
319 / 143 / 3
Регистрация: 25.01.2012
Сообщений: 6,254
Записей в блоге: 182
26.09.2012, 13:23
перевод координат-это второстепенно, нужно научится проецировать хотя бы на две оси. я бы начинал визуализацию с поверхностей, вершины которых имеют наименьшие координаты по третей, и затем добавлял бы новые, вычетая их предыдущими, если они их как-то перекрывают. когда будет алгоритм визуализации, то уже от него оттталкиваться в создании алгоритма перевода из одной системы в другую, иначе код будет медленным, или создание такового вообще будет являться весьма абстрактной задачей: пойди туда-незнаю куда, принеси то-не знаю что. а так, если накладывать текстуры, то там уже каждая поверхность-двумерный массив. потом включаются алгоритмы обработки "геометрии отношений" (вроде так называется топология, если не ошибаюсь).

Добавлено через 10 минут
текстура, пологаю, наносится на развёртку сюзанны (блендер 3д). то есть при рендере, скорее всего текстуры и прочая двухосная графика наносятся на развёртки объектов, а потом уже визуализируется рендер. в рабочей камере визуализация происходит без текстур и оптической физики. хотя, возможно, что визуализация начинается с развёртки объекта ещё в рабочей камере, это было бы быстро и удобно. то есть рисовать 3д объект нужно сразу с 2д, но по алгоритму обработки развертки

Добавлено через 11 минут
можно смело создавать 2д массив 3д аобъекта-развертку, информация о 3д объекте будет сохранятся в копиях одних и тех же вершин, принадлежащих разным поверхностям. всё элементарно . я решаю ту-же задачу, или похожую, так-что давай меняться соображениями. ещё можно подумать на предмет применения технологических пространств (мой личный приём), но это отнимет некоторое время.
0
 Аватар для Hrethgir
319 / 143 / 3
Регистрация: 25.01.2012
Сообщений: 6,254
Записей в блоге: 182
27.09.2012, 18:31
с тс соображениями поделился-ему однозначно делать развертку. раз тс не хочет делится соображениями со мной, тщательно погуглив и ничего не найдя, сгенерируем соображения самостоятельно. мой случай проще визуализировать 3д модель, для начала.

Не по теме:

в инете всё так сложно: дисертации состоящие из списков литератур, трёп о геометрии и математике. ничего я этого читать не буду, те топики для меня похоронены заумностью своих авторов.

итак создаем колоду карт поверхностей модели, и к каждой карте поверхности 3 карты камеры (камера у меня простецкая, отображает только то, что все обычно получают построением проекции, да и файлики то стл, состоят из треугольников). карты поверхностей могут менять свое положение в колоде, как последовательность или номер слоя, перемещаться в плоскости колоды. само же проецирование тогда будет смещение карт в плоскости колоды, изменение их положения к поверхности колоды. карты камеры работают следующим образом: они состоят из прозрачной части и непрозрачной, непрозрачная часть будет усекать конкретную поверхность, за которой закреплена эта конкретная карта камеры. таким образом визуализировать 3д модель-расположить карты "колоды" в соответсвующем порядке и сместить их соответственным образом, помимо смещения карты разумеется можно поворачивать. вот таким образом я буду производить визуализацию или построение изображения по 3д модели. думаю неплохо придумал.

Не по теме:

авторам заумных топиков, бакалавриусам и гениусам:"пишите больше букав, как можно больше, чтобы никогда не закончить свою писаниниусу и труд ваш станет воистину Великим"



Добавлено через 12 минут

Не по теме:

и всё-так: как просто покончить с чушью-нужно хвалить за каждую букву одной и той-же чуши и рукоплескать ей. может это имелось ввиду в библии: ударили по щеке-подставь другую?

0
320 / 280 / 109
Регистрация: 27.09.2010
Сообщений: 1,058
27.09.2012, 23:06  [ТС]
у меня соображений нет,т.к. понял, что это очень трудная штука, и одному тут нечего делать.
0
 Аватар для Hrethgir
319 / 143 / 3
Регистрация: 25.01.2012
Сообщений: 6,254
Записей в блоге: 182
28.09.2012, 09:36
странно, а я думал, что как раз один может сделать невозможное (в интеллектуальной сфере

Не по теме:

, кроме одного-убедить, убеждать-дело партии

), двое и больше этого не сделают никогда. то что это-труд и работа-это однозначно. ну а мои соображения как выглядят? если что я поясню, можете пользоваться ими. всякая работа делится на части, каждая часть требует своего подхода, чтобы было понятно самому и другим, поэтому приведена аналогия с обычными игральными картами, а так-там ничего сложного. сейчас пытаюсь придумать как применить к "колоде" карт технологические пространства, чтобы обойти традиционную геометрию и тригонометрию, но можно и не обходить-"колода" и с ними своё сделает.
0
320 / 280 / 109
Регистрация: 27.09.2010
Сообщений: 1,058
28.09.2012, 10:36  [ТС]
Соображения выглядят гуд. Но проблема в том, что я хотел писать эту штуку на Java Script . Так было по задумке. Поэтому нужен алгоритм, который сведет кол-во операций по преобразованию к минимуму, дабы не нагружать браузер.
0
 Аватар для Hrethgir
319 / 143 / 3
Регистрация: 25.01.2012
Сообщений: 6,254
Записей в блоге: 182
28.09.2012, 10:52
ну вот, поэтому я и думаю, как применить технологические пространства, чтобы обойти традиционную геометрию. а так-поверь, быстрее не будет, нужен способ обойти традиционную тригонометрию. раньше многое решалось более простыми способами, но пришли люди-одни, которые получают деньги за буквы, другие-которые их охраняют, и стало всё по другому. например есть задачи по физике, которые решаются интегральными уравнениями и пр., но есть решения вообще изящные, тех же задач, старыми способами-через площадя (Пифагор), но чтобы решить их теми способами-нужно уметь думать: с какой стороны и как подойти к задаче. есть люди, которые не могут этого, как ни странно, но легко запоминают много букав, которые даже порой между собой логически не связаны. они-то и пишут много букав. хочешь решить просто-думай, решение есть однозначно, его не может не быть, так как задача реальная. есть изначально нереальные задачи, неправильно поставленые. а то, что нужно тебе-это реально, но нужно ломать голову, точнее то-что в ней. я вообще на Lisp собираюсь исполнять это, и меня это не смущает, как и то, что я не написал на нём ещё ни одной программы, ну может какую нибудь маленькую и никчёмную разве что.

Добавлено через 4 минуты

Не по теме:

интересное стечение обстоятельств :), твой ник-титаны, мой-хретгир, прям как, в одном из томов бестселлера "Дюна", пробуй титан :), не отчаивайся,эта задача не под силу только Омниусу и его искусственным обитателям синхронизированых миров, с ней даже кимек справится, шутка

0
 Аватар для XAHOK
273 / 266 / 20
Регистрация: 27.02.2009
Сообщений: 694
Записей в блоге: 7
28.09.2012, 16:50
Цитата Сообщение от titans2011 Посмотреть сообщение
Соображения выглядят гуд. Но проблема в том, что я хотел писать эту штуку на Java Script . Так было по задумке. Поэтому нужен алгоритм, который сведет кол-во операций по преобразованию к минимуму, дабы не нагружать браузер.
Если не секрет, то зачем такой изврат? WebGL или тот же Unity3d использовать не проще будет?
0
 Аватар для Hrethgir
319 / 143 / 3
Регистрация: 25.01.2012
Сообщений: 6,254
Записей в блоге: 182
28.09.2012, 17:19
изврат? я бы не сказал. дело в том, что я уважаю ассемблер и прямую работу с памятью. для LIsp это будет изврат, но он всё равно ближе других к машинному коду, есть у него такое свойство. но вообще можно начать с написания функции урезать линию фигурой, прежде чем отобразить линию, раз уж нужно самому, а "колоду" карт оставить хотя бы для того, чтобы можно было проще определяться с каких поверхностей начинать визуализацию. да, жаль, конечно, что языки программирования не позволяют работать с памятью видеокарты напрямую, сейчас каждый тролль на тролле, понятие джентльменского набора минуло в лепту , сейчас не то что наборы тролльи, у троллей синхронизированый мир, а не набор, вернуть те времена-я бы посмотрел у кого изврат, а у кого разврат. и не нужно пытаться меня упрекнуть, что я не преуспел ни в чём в своё время, а то я ссылку на свой блог оставлю в профиле, за сайт не всегда есть чем платить.
0
320 / 280 / 109
Регистрация: 27.09.2010
Сообщений: 1,058
28.09.2012, 17:32  [ТС]
Цитата Сообщение от XAHOK Посмотреть сообщение
Если не секрет, то зачем такой изврат? WebGL или тот же Unity3d использовать не проще будет?
Unity исспользует свой язык, мне не хочется его изучать. А скрипт я уже знаю. Там тупо можно создать таблицу по одному пикселю без рамок на весь экран, и функцию по переводу координат 3D в цвет точки. Как-то так. но не знаю. мне кажется для меня это пока сейчас рановато. Я просто думал есть какие нибудь библиотеки или что-то в этом духе, а самому писать ещё рано.
0
 Аватар для Hrethgir
319 / 143 / 3
Регистрация: 25.01.2012
Сообщений: 6,254
Записей в блоге: 182
28.09.2012, 17:50
titans2011, в твоём языке есть графическая функция нарисовать окружность урезаную хордой? если есть, то было бы просто визуализировать четырёхугольные и трёхугольные поверхности посредством урезания квадратной карты поверхности тремя и четырьмя урезаными окружностями,( взависимости от положения камеры урезается окружность хордой). правда прийдётся оперировать с слоями, если можно. но тогда в коде можно будет вычеркнуть всякие синусы и косенусы. по крайней мере, если не так, то сократить число их вычислений. вобщем работа с слоями было бы удобно, а там уже всяко придумать можно что-то.

Добавлено через 11 минут
хотя нет, это же машинная графика, там прийдётся задавать координаты хорды . зато техника визуализации посредством карт прекрасно подошла бы для фотонных ЭВМ, так что не всё изврат, что изврат по чьему-либо усмотрению. наложил изображения, вычел их где нужно, никакая электронника не обгонит. то же самое с логикой фотонного ЭВМ. но пусть будет лучше изврат:троллю-троллье, а я свои пересечённые прямые вынесу сам, как-то.
0
Псевдослучайный
1946 / 1146 / 98
Регистрация: 13.09.2011
Сообщений: 3,215
28.09.2012, 17:54
Я таки плюсую оратора с webgl, по сути эта та самая библиотека для работы с 3д из жабаскрипта, которую хотел ТС. И там всё(в идеале, ага) работает с аппаратном ускорением.
0
 Аватар для Hrethgir
319 / 143 / 3
Регистрация: 25.01.2012
Сообщений: 6,254
Записей в блоге: 182
28.09.2012, 18:00
с аппаратным ускорением не поспоришь, только я не оратор, если что
0
28.09.2012, 18:04

Не по теме:

Цитата Сообщение от Hretgir Посмотреть сообщение
я не оратор
Как будто что-то плохое

0
 Аватар для Hrethgir
319 / 143 / 3
Регистрация: 25.01.2012
Сообщений: 6,254
Записей в блоге: 182
28.09.2012, 22:58

Не по теме:

:wall: их труд не рукотворный, не разобьёт ничья глава. а он однажды рушится, достигнув опр. высоты, только рушится на головы, а так проблем бы не было ...с ораторами



Добавлено через 4 часа 23 минуты
titans2011, в HomeLisp есть такая функция: Функция GRWARC принимает семь аргументов: идентификатор окна, координаты центра, радиус окружности, угол начала и угол конца дуги, цвет задается последним параметром (битовой шкалой). Вот подробный пример рисования дуги.

если
есть интересная функция GRWARC. у неё задаётся начальный угол и конечный. это интересно ( в плане алгоритма выполнения самой функции), а нельзя никак вернуть значения двух крайних точек дуги? если алгоритм хорош и можно вернуть значения двух крайних точек, то в визуализации 3д объектов можно обойтись без блобов и больших массивов и вообще больших вычислений. интересен механизм функции, если не секрет. вернуть координаты двух крайних точек и было-бы очень хорошо. я бы попробовал тогда метод карт поверхностей и карт камеры, какая разница чем я буду усекать поверхность-залью отрез цветом фона замкнутым контуром дуги и соединением крайних точек хордой, вот и отсечение. тогда синусы и косинусы мне уже вычислять нет нужды. уже побыстрее выходит.
Добавлено через 11 минут
было бы очень хорошо вернуть координаты крайних точек, если дугу замкнутую хордой можно залить как контур.
посмотри в Jawa Script, может сгодится. к тому же на базе хорды можно создать многоугольник, если нужно.
0
320 / 280 / 109
Регистрация: 27.09.2010
Сообщений: 1,058
28.09.2012, 23:01  [ТС]
Хорошо, посмотрю.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.09.2012, 23:01
Помогаю со студенческими работами здесь

Перевод координат модели в растровые
Вопрос очень маленький : правильно ли я все понял? Чтобы получить РЕАЛЬНОЕ положение точки на экране нужно 1.получить положение точки...

Перевод координат из kml в mat
Здравствуйте, подскажите, пожалуйста. У меня есть файл kml из Google Earth с координатами кривой линии, как мне эти координаты перевести в...

Перевод в цилиндрическую систему координат
Есть массив x и y. Нужно получить r и rho. В матлабе это можно сделать без цикла функцией cart2pol. Можно ли в питоне сделать так же ?...

Перевод координат мыши в стереометрию
есть окно размером 1024х768 внутри него стереометрическая комната как узнать координаты клетки по которой щелкнул мышкой?...

Перевод из мировых координат в компонентный
Здравствуйте! Использую Delphi 6. Делаю обработку message procedure WMMouseWheel(var Message: TWMMouseWheel); message...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru