現在、sCATtering_Viewerに使うためのグラフプロットライブラリの進捗とかメモとか
単体で公開してるけどドキュメントはまともに書いていない(今のところ自分しか使わないので)
そろそろpypiに入れてgit使わないでも良いようにしたいっすね
中身が見たければここ↓
目的
matplotlibよりも少し高速な描画
15000点×1000データぐらいの描画を行おうとするとmatplotlibだとめちゃくちゃ重くなる。また、4000*4000の画像データを描画する際にもちょっとカクカクしてあまり快適とは言えない。前者は早くなるか未検証だが、後者についてはだいぶ高速化される。その分グラフを書くのが少ししんどい
配布しやすく
高速なライブラリにはQtのPyQtGraphがあるが、Qt自体がライセンスの問題で配布する際にはちと面倒。他のグラフライブラリもいくつか試してみたが、速度でいうと少しう~~んという感じだった。
描画周りの勉強
OpenGLとか色々
メインのライブラリ
skia
グーグルが開発している(た?)らしい2DCGライブラリ。バックエンドにOpenGLが使える。
wxpython
GUIライブラリ。OpenGLが簡単に使えるglcanvasがある。
中身
基本構造としては
glcanvas - BasePanel
├ Panel (Graph)
├ Panel (Tick)
└ Panel - ★
├ Panel(Graph) - ☆
└ Panel(Tick)
のような感じ。
Panelごとに描画の更新の必要があれば描画をして、なければ以前に描画したキャッシュを利用することで高速化をしたいな~~という発想。
Panelは基本的に相対位置で記述をする。
例えば、☆のPanelはBasePanelの相対位置ではなく、★からの相対座標を記述する。(☆を絶対座標の(200,200)に置きたいときは、★がBasePanelの(100,100)にいれば、(100,100)とする)←分かりづらい
今のところの問題点
なんかGUIのリサイズし始めが若干遅い
中身があまり美しくない
skiaのpythonラッパーライブラリがもう更新停止してる(更新再開された?)