Возникла задача рисовать пунктирные линии (прямые и кривые безье 3 порядка) произвольной толщины через залитые полигоны.
Подскажите в какую сторону "копать".
В идеале ищется библиотека которая может на основе описанного пути и шаблона выдать набор полигонов.
Хочется верить что есть такая, просто я не нашел
Но буду рад любым ссылкам на алгоритмы.
Поиск по русскоязычной части инета особого успеха не принес. На RSDN этот вопрос несколько раз встречался, но поверхностно (по крайней мере в тех темах что я нашел).
Использую OpenGL. С рисованием сплошных линий через полигоны вопросов не возникло.
Здравствуйте, matvienko, Вы писали:
M>Добрый день.
M>Возникла задача рисовать пунктирные линии (прямые и кривые безье 3 порядка) произвольной толщины через залитые полигоны. M>Подскажите в какую сторону "копать".
M>В идеале ищется библиотека которая может на основе описанного пути и шаблона выдать набор полигонов. M>Хочется верить что есть такая, просто я не нашел M>Но буду рад любым ссылкам на алгоритмы.
M>Поиск по русскоязычной части инета особого успеха не принес. На RSDN этот вопрос несколько раз встречался, но поверхностно (по крайней мере в тех темах что я нашел).
M>Использую OpenGL. С рисованием сплошных линий через полигоны вопросов не возникло.
antigrain.com
Re[2]: Вывод пунктирных линий через полигоны
От:
Аноним
Дата:
14.08.07 12:41
Оценка:
M>>Возникла задача рисовать пунктирные линии (прямые и кривые безье 3 порядка) произвольной толщины через залитые полигоны. M>>Подскажите в какую сторону "копать".
M>>В идеале ищется библиотека которая может на основе описанного пути и шаблона выдать набор полигонов. M>>Хочется верить что есть такая, просто я не нашел M>>Но буду рад любым ссылкам на алгоритмы.
M>>Поиск по русскоязычной части инета особого успеха не принес. На RSDN этот вопрос несколько раз встречался, но поверхностно (по крайней мере в тех темах что я нашел).
M>>Использую OpenGL. С рисованием сплошных линий через полигоны вопросов не возникло.
KP>antigrain.com
Не подойдет. У меня вывод через OpenGL.
И там как я понял вывод линий через растеризацию, хотя может не туда смотрел...
Поправьте меня если не так...
Здравствуйте, Аноним, Вы писали:
KP>>antigrain.com
А>Не подойдет. У меня вывод через OpenGL. А>И там как я понял вывод линий через растеризацию, хотя может не туда смотрел... А>Поправьте меня если не так...
KP>>>antigrain.com А>>Не подойдет. У меня вывод через OpenGL. KP>а glLineStipple пробовали?
Там где надо — его использую
Но нужно именно через полигоны:
* во первых для возможности прорисовать с дисплейный список с возможностью последующего правильного масштабирования ширины линий при масштабировании всего списка при выводе
* на будущее иметь возможность создавать нестандартные линии (двойные, тройные, линии с маркерами вдоль пути)
* ну и для возможность рисовать линии произвольной толщины, не привязываясь к ограничениям реализации OpenGL, да и толстые линии прорисованные через полигоны лучше смотрятся, чем через растровые алгоритмы
Спасибо! Сразу не понял...
Но надо сказать что с наскока разобраться в AGG и найти нужный код у меня наверное врядли получится...
Хотя сейчас дело с мертвой точки сдвинулось. Проблема была в попытке разбить кривую Безье на штрихи в лоб...
Сейчас пробую сначала представить ее в виде ломаной...
Здравствуйте, matvienko, Вы писали:
M>Хотя сейчас дело с мертвой точки сдвинулось. Проблема была в попытке разбить кривую Безье на штрихи в лоб... M>Сейчас пробую сначала представить ее в виде ломаной...
M>>Хотя сейчас дело с мертвой точки сдвинулось. Проблема была в попытке разбить кривую Безье на штрихи в лоб... M>>Сейчас пробую сначала представить ее в виде ломаной...
KP>У Максима, автора библиотеки, там есть такой код, а также статья на RSDN: http://www.rsdn.ru/article/multimedia/Bezier.xml
Да. За статью знаю — спасибо. Статья конечно отличная!
Я наверное немного неправильно выразился.... Конечно же при рисовании сплошной кривой Безье я использую рекурсивный алгоритм деления кривой пополам. Просто и пунктирную кривую я пытался рисовать прям в этом методе.
Потом понял, что проще сначала в промежуточный массив представить кривую как набор ломанных, а уже после вывести их с учетом пунктира.
Хотя конечно жаль, что нет готовой библиотеки, желательно под OpenGL, которая позволила бы не изобретать велосипед...