Управляемый контроллер кривой Безье в pyqtgraph

Я хочу построить элемент графика с управляемой кривой Безье (используя 4 точки)

c3 = -P1 + 3 * (P2 - P3) + P4
c2 = 3 * (P1 - (2 * P2) + P3)
c1 = 3 * (P2 - P1)
c0 = P1

curve = ((c3 * time_points + c2) * time_points + c1) * time_points + c0

Я бы хотел что-то вроде этого:

Контрольные точки Безье

Мой вопрос в том, что было бы наиболее простым способом реализовать это в pyqtgraph. Я вижу два пути:

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

Спасибо за понимание этого!


person beesleep    schedule 20.09.2018    source источник


Ответы (1)


Хорошо, после некоторого исследования я нашел пример реализации ROI Безье с использованием pyqtgraph. Вот ссылка на репозиторий github.

В основном речь идет о подклассе класса ROI с использованием дескриптора произвольного типа (который не является относительным). и раскрашивание кривой Безье («вручную»).

Также существует функция qt toCubic для рисования Безье.

Использование ROI позволяет получить все функции ROI, которые мне пришлось бы реализовать с нуля, если бы я выбрал PlotDataItem. Это все еще не так очевидно, и кажется необходимым хорошее понимание pyqt, чтобы все было готово для того, чтобы рентабельность инвестиций работала должным образом.

Я надеюсь это поможет другим

person beesleep    schedule 21.09.2018