pyqtgraph中的可控贝塞尔曲线控制
Controlable bezier curve controler in 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。我开始了这个,但我不知道如何在没有 subclassing 一切
的情况下使拖动功能工作
- subclass ROI class,但我很难理解这个 class 是如何工作的,似乎一切都在相对坐标中,我需要找到正确的轨道
感谢您对此的任何见解!
好的,经过一番研究,我找到了一个使用 pyqtgraph 实现贝塞尔 ROI 的示例。这是 a link 到 github 存储库
基本上它是关于子classing ROI class,使用自由句柄类型(不是相对的)。并绘制贝塞尔曲线("hand")。
还有绘制贝塞尔曲线的qt toCubic函数。
使用 ROI 可以获得 ROI 的所有功能,如果我选择使用 PlotDataItem,我将不得不从头开始实现这些功能。
它仍然不是那么明显,并且对 pyqt 的良好理解似乎是必要的,以便让 ROI 按预期工作。
我希望这对其他人有帮助
我想构建一个贝塞尔曲线可控的绘图项(使用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。我开始了这个,但我不知道如何在没有 subclassing 一切 的情况下使拖动功能工作
- subclass ROI class,但我很难理解这个 class 是如何工作的,似乎一切都在相对坐标中,我需要找到正确的轨道
感谢您对此的任何见解!
好的,经过一番研究,我找到了一个使用 pyqtgraph 实现贝塞尔 ROI 的示例。这是 a link 到 github 存储库
基本上它是关于子classing ROI class,使用自由句柄类型(不是相对的)。并绘制贝塞尔曲线("hand")。
还有绘制贝塞尔曲线的qt toCubic函数。
使用 ROI 可以获得 ROI 的所有功能,如果我选择使用 PlotDataItem,我将不得不从头开始实现这些功能。 它仍然不是那么明显,并且对 pyqt 的良好理解似乎是必要的,以便让 ROI 按预期工作。
我希望这对其他人有帮助