#include "TROOT.h" #include "TStyle.h" #include "TCanvas.h" #include "TView.h" #include "TPolyLine3D.h" #include "TLatex.h" void cir_solid_angle(){ gROOT->SetStyle("Plain"); gStyle->SetTextFont(132); TCanvas *c1 = new TCanvas("c1","c1",400,400); c1->SetTheta(20.); c1->SetPhi(-141.); TView *view = TView::CreateView(1); Double_t view_size = 0.8; view->SetRange(-view_size*0.3,-view_size*1.0,-view_size*1.0, view_size*1.7, view_size*1.0, view_size*1.0); const Int_t nPolyLine3D = 20; TPolyLine3D *guide[nPolyLine3D]; for (Int_t i = 0; iSetNextPoint(2.0+r*cos(theta),r*sin(theta),0); } for (Int_t i=0;i<=n;i++) { Double_t r = x0; Double_t theta = i*2.*pi/n; guide[5]->SetNextPoint(0,r*cos(theta),r*sin(theta)); } guide[6]->SetNextPoint(0,x0,0); guide[6]->SetNextPoint(2,0,0); guide[6]->SetNextPoint(0,0,0); Double_t virlen = 0.1; guide[7]->SetNextPoint(virlen,0,0); guide[7]->SetNextPoint(virlen,0,virlen); guide[7]->SetNextPoint(0,0,virlen); for (Int_t i = 0; iDraw(); } Double_t xx[3],xxt[3]; TLatex Tl; Tl.SetTextSize(0.06); xx[0]=2.04; xx[1]=0.0; xx[2]=-0.15; view->WCtoNDC(xx,xxt); Tl.DrawLatex(xxt[0],xxt[1],"O"); xx[0]=0.00; xx[1]=0.0; xx[2]=-0.15; view->WCtoNDC(xx,xxt); Tl.DrawLatex(xxt[0],xxt[1],"C"); xx[0]=1.4; xx[1]=0.25; xx[2]=0.00; view->WCtoNDC(xx,xxt); Tl.DrawLatex(xxt[0],xxt[1],"#it{#alpha}"); }