... и спасибо за чтение ...Какова наилучшая структура данных для представления узлов в трехмерном пространстве?
Я все еще учусь веревки, так что будьте снисходительными ... ;-)
Я пишу функцию, которая зацепляется твердого вещества в пространстве. Сетка производится с помощью объектов класса «Node», и каждый узел представлен:
int id
double p
double r
Первоначально я думал, что карта будет путь: с картой я могу сделать ассоциацию между ключ «id» и второй ключ (указатель на объект узла).
Что-то вроде этого:
int nodeId;
Node *node;
std::map<int, Node *> NodeMap;
Затем, когда я создаю узлы я просто называю «новый» оператор. Например, в цикле я сделать что-то вроде этого:
node = new Node(i); // the node constructor sets the id to the value of i.
и добавить новый узел к карте:
NodeMap[i] = node;
Но .... я понял, что мне нужно будет сделать поиск на карте не по первому ключу (id), а по параметрам p и r (координаты узла).
Другими словами, мне понадобится то, что возвращает идентификатор узла, заданный значениями p и r. Карта является идеальным контейнером, если поиск выполняется с использованием целого первого ключа (id). Есть ли у кого-нибудь предложение о том, как решить эту проблему?
Спасибо большое! AsvP.
Что означают p и r - и не является ли это 2D-пространство, так как у вас есть только 2 координаты? –