1
我正在努力解決一個我想在TCanvas上繪製大量橢圓的問題。我通過鏈接適當的ROOT庫來構建ROOT之外的程序。我可以通過將它硬編碼到主畫布上來成功繪製單個橢圓,但是當我嘗試將其調整爲繪製一系列橢圓時,程序將輸出一個空畫布。在ROOT中迭代繪製TEllipse
extern void InitGui();
VoidFuncPtr_t initfuncs[] = { InitGui, 0 };
int Error;
TROOT root("plot", "Plot", initfuncs);
int main(int argc, char **argv) {
TApplication *app = new TApplication("App", &argc, argv);
TCanvas *c = new TCanvas();
c->Range(0,0,100,100);
TEllipse *e;
while(getline(myFile1, coordinate)) {
split(myVector, coordinate, is_any_of(" "));
arr[0] = myVector.at(0);
arr[1] = myVector.at(1);
getline(myFile2, arr[2]);
e = plotZone(stod(arr[0]), stod(arr[1]), stod(arr[2]));
e->Draw();
c->Update();
}
c->Show();
app->Run();
delete app;
return 0;
}
TEllipse * plotZone(double x, double y, double r) {
TEllipse *e = new TEllipse(x, y, r, r);
e->SetFillColor(38);
e->SetFillStyle(3003);
return e;
}
我真的只是想知道爲什麼傳遞TEllipse回到主的行爲防止它被渲染,或者是它也許是我做的抽獎/更新錯了嗎?所有的幫助感激:)
你們要讚美!看來ROOT支持很難得到 –