Рисовать узлы, например аккордовое кольцо - PullRequest
0 голосов
/ 09 февраля 2011

У меня есть набор узлов, которые я хотел бы поместить в кольцо.Все они имеют числовое свойство, которое я хотел бы использовать для ссылки в кольцо.

Например, узел с параметром 32 следует после узла с пунктом 22.

Что мне действительно нужно, так этобиблиотека (или что-то в этом роде), которая может обеспечить правильное «расстояние» между узлами, например: между 22 и 32 - 10 «единиц», а между 32 и 35 - 3 «единицы», где «единицы»может быть пустой числовой слот.

1 Ответ

0 голосов
/ 09 февраля 2011

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

Что-то вроде двусвязного списка с подключенной головой и хвостом будет работать.Операции добавления должны будут проходить по списку, чтобы найти подходящую позицию для вставки, делая операцию O (n).Это может привести к тому, что ваш список будет действительно плохо работать, поскольку в значительной степени все стандартные операции со списком будут O (n).

Вы можете легко реализовать distanceToNext и / или distanceToPrevious,просто получая значения текущего и следующего / предыдущего узлов и возвращая разницу.

Редактировать:
Только что из названия вопроса понял, что вы, вероятно, ищете какую-то библиотеку графического интерфейса для их рисования, и я просто намекнулна модели, которую вы могли бы использовать.Я подумаю о графическом интерфейсе.

Редактировать 2:
Ваша проблема сводится к тому, как вы рисуете многоугольник, когда вы знаете только длину сторон.Я попросил вас обменяться математическим стеком .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...