私はwxWidgetsを使ってアニメーション円形ゲージを作るのに苦労しています。私はSVGイメージでwxSVGを使用しようとしましたが、ウィンドウで拡大縮小するのでLinux上で動作しましたが、Windowsでのそのライブラリのコンパイルはそのような問題でした。 私はwxArt2Dを使ってみましたが、Linuxでもコンパイルできませんでした。 今私はwxDCとwxImageを使用していますが、rescaleではリフレッシュせず、CPUのオーバーヘッドが大きくなります(ラップトップi7は約30%使用されます)。ここに私のコードは次のとおりです。wxWidgetsを使ったゲージ
void MyFrame::OnPanel2EraseBackground(wxEraseEvent& event)
{
}
void MyFrame::OnPanel2Resize(wxSizeEvent& event)
{
wxSize panelSize = event.GetSize();
gaugeBuffer = gaugeImg.Scale(panelSize.GetX(), panelSize.GetY(), wxIMAGE_QUALITY_HIGH);
needleBuffer = needleImg.Scale(panelSize.GetX(), panelSize.GetY(), wxIMAGE_QUALITY_HIGH);
}
void MyFrame::OnPanel2Paint(wxPaintEvent& event)
{
wxPaintDC dc(Panel2);
wxPoint offset;
wxSize drawSize = dc.GetSize();
memDC.Clear();
temp = needleBuffer.Rotate((angle*M_PI/180), wxPoint((drawSize.GetX()/2), (drawSize.GetY()/2)), true, &offset);
memDC.DrawBitmap(gaugeBuffer, 0, 0);
memDC.DrawBitmap(temp, offset);
dc.Blit(0, 0, drawSize.GetX(), drawSize.GetY(), &memDC, 0, 0);
}