Сейчас работаю над еще одним очень важным компонентом пользовательского интерфейса – подсказка (Tooltip).
Так как компонент будет поддерживать закругление углов (Rounded corners), необходимо разработать полноценную логику рисования части кривой Безье, после пересечения с «усиком» подсказки.
Смотреть в действии
P.S.
Всегда хотел иметь компонент такого рода под рукой. Так что, PROFGUI в скором времени обзаведется 5-ым компонентом.

Всегда хотел себе такую чашку. И вот, на новый год, мне подарили такую. Всех с наступившим праздником!
После внесения серьезных изменений в алгоритм «А» звезда (удалось отказаться полностью от списков, и тем самым операций splice), решил сделать тест производительности алгоритмов.
На время влияет расстояние между начальной и конечной точками(длина пути).
Смотреть в действии
P.S.
На практике, нерационально использовать алгоритм Дейкстры, где граф имеет вид сетки.
Предлагаю вашему вниманию, собственную реализацию вспомогательного framework по обнаружению минимального пути в графе. На данном этапе разработки, PathFinder, поддерживает два алгоритма: алгоритм Дейкстры и «А» звезда. Алгоритмы изрядно изменены, для максимальной совместимости с framework, за основу взяты лишь идеи этих алгоритмов.
Достоинства и недостатки реализованных алгоритмов.
Алгоритм Дейкстры:
+ точное обнаружение минимально пути в графах любой сложности;
+ позволяет обнаруживать путь в сложных/запутанных графах;
- в 3 раза медленнее, чем алгоритм «А» звезда;
Алгоритм «А» звезда:
+ быстрый метод обнаружения пути;
+ идеально подходит для графов с принципом построения как у «королевского» графа;
- некорректно находит путь в сложных/запутанных графах;
Смотреть в действии
Небольшой наглядный тест, сравнения итераций. Очень много дискуссий в интернете по поводу, что та или иная итерация быстрее другой.
Самое интересное, что при очень большом количестве итераций (1 000 000 000), разница между различными методиками For, полностью исчезает.
Результаты теста при 1 000 000 000 итераций:
4103 ms
5340 ms
4087 ms
4089 ms
4090 ms
4090 ms
Смотреть в действии
P.S.
Постарайтесь подобрать такое количество итераций, что бы время на тип итерации выходило в районе 500мс.
На хорошем процессоре, это примерно 100 000 000 итераций.
Так же нужно понимать, что самая медленная итерация, это когда в конструкции For, i и len имеют разные типы, к примеру int и uint, про Number вообще не стоит говорить.