roboforum.ru

Технический форум по робототехнике.


Визуализация трехмерного массива точек

Визуализация трехмерного массива точек

Сообщение executer » 25 июн 2010, 10:05

Недолго думая не придумал как малой кровью можно отображать массива точек (трехмерный массив в котором ячейка либо =0 - точки нету, либо =1 - точка есть) в окошке, зная относительные координаты камеры и массива. Сначала думал трассировать каждый луч влетающий в камеру - но лучи не будут проходить точно в пространстве через ячейки массива - нужно как то определять далеко луч прошел от ячейки или близко.
А перебирать каждую ячейку и проверять видно ее или нет - сильно долго.


Пока писал подумал - были в геометрии какие то формулы для проверки проходит ли прямая через прямоугольник (сторону ячейки) в пространстве - может можно будет как то рассчитать где луч через массив проходит.
Аватара пользователя
executer
 
Сообщения: 784
Зарегистрирован: 30 янв 2009, 01:24
Откуда: Запорожье
прог. языки: Си, AvrASM, STL, САС, учу Си++
ФИО: Павел

Re: Визуализация трехмерного массива точек

Сообщение =DeaD= » 25 июн 2010, 10:13

Возьми алгоритм брезенхема для рисования линии и адаптируй для поиска всех пикселей пересекаемых воображаемой линией :)
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Визуализация трехмерного массива точек

Сообщение executer » 25 июн 2010, 11:43

Блин, точно! Камеру же тоже можно рассматривать в координатах массива! Благодарю!

Добавлено спустя 15 минут 51 секунду:
НО, я много раз рисовал в школе линии плотно расходящиеся веером из одной точки - в итоге получался не полностью залитый сектор а сектор с кучей дырок - т.е. в моем случае много ячеек могут не отобразится :( т.к. через них не пройдет ни один трассирующий луч из камеры
Аватара пользователя
executer
 
Сообщения: 784
Зарегистрирован: 30 янв 2009, 01:24
Откуда: Запорожье
прог. языки: Си, AvrASM, STL, САС, учу Си++
ФИО: Павел

Re: Визуализация трехмерного массива точек

Сообщение =DeaD= » 25 июн 2010, 11:50

Ключевое слово в моём сообщении - адаптируй. Т.е. определись, какие окружающие ячейки должна захватить твоя линия, для этого с каждой линией веди 8 соседних, если ячейка ближе к одной из них или совсем далеко от твоей линии, то отрисуешь её там, иначе отрисуй здесь.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Визуализация трехмерного массива точек

Сообщение Ku6opr » 25 июн 2010, 12:32

Можно воспользоваться стандартными возможностями языка программирования, который позволяет работать с 3D графикой. Например, GDI+, DirectX, XNA под С# имеют возможность отрисовать массив точет и вращать камерой вокруг них.
Аватара пользователя
Ku6opr
 
Сообщения: 50
Зарегистрирован: 19 май 2008, 12:04
Откуда: Украина, г. Харьков
прог. языки: C#, C++

Re: Визуализация трехмерного массива точек

Сообщение executer » 25 июн 2010, 14:01

да, полистал форумы - по-ходу можно видеокарточке передать массив а она уже пущай малюет на 1000 ФПС 8). И не надо парится где там луч проходит а где не проходит.

У меня приложение в вижуал Си++ - что легче всего будет туда интегрировать для быстрой черновой 3Д визуализации?
Аватара пользователя
executer
 
Сообщения: 784
Зарегистрирован: 30 янв 2009, 01:24
Откуда: Запорожье
прог. языки: Си, AvrASM, STL, САС, учу Си++
ФИО: Павел

Re: Визуализация трехмерного массива точек

Сообщение =DeaD= » 25 июн 2010, 14:03

try OpenGL?
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Визуализация трехмерного массива точек

Сообщение idmasystems » 08 фев 2016, 23:34

один из моих проектов - стериокамера - решал такую задачу - если интересно - пиши. ну или вспомни школьный курс геометрии и вперёд программить)) мне школьной программы хватило (можно обойтись без матриц)
idmasystems
 
Сообщения: 12
Зарегистрирован: 08 фев 2016, 20:14
Откуда: Москва
ФИО: Дмитрий


Вернуться в Алгоритмы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7