Я видел пример реализации кривой Безье в QML, но я ищу подсказку, как реализовать пунктир или пунктирная линия кривой безье. Насколько я вижу, авторы примера кривой Безье используют QSGGeometryNode
для хранения внутри QSGGeometry
с помощью материала QSGFlatColorMaterial
, применяемого к нему. Затем они просто создают список точек и рисуют сегменты между ними.
Можно ли написать shader
и применить его к QSGFlatColorMaterial
(для отображения строки как dashed
, dotted
и т.д.)?
В конце концов, можно ли хранить более одного QSGGeometry
внутри QSGGeometryNode
?
UPDATE
Я хотел бы реализовать это в "pure QtQuick
" - не в "старых" интерфейсах (например, QPainter etc
)), потому что я не хочу использовать что-то, что переключает контекст (openGL и CPU). Я предпочитаю решение с пользовательским шейдером (если это выполнимо), потому что у меня будет больше возможностей для реализации пользовательского внешнего вида (пунктирная, придуманная, цветная, анимированная и т.д.).
Если это невозможно, я буду использовать QPainter
.