/// \file /// \ingroup tutorial_graphics /// \notebook /// This macro demonstrates the use of color transparency. /// /// It is done by specifying the alpha value of a given color. /// For instance /// /// ~~~ /// ellipse->SetFillColorAlpha(9, 0.571); /// ~~~ /// /// changes the ellipse fill color to the index 9 with an alpha value of 0.571. /// 0. would be fully transparent (invisible) and 1. completely opaque (the default). /// /// The transparency is available on all platforms when the flag /// `OpenGL.CanvasPreferGL` is set to `1` in `$ROOTSYS/etc/system.rootrc`, or /// on Mac with the Cocoa backend. X11 does not support transparency. On the file /// output it is visible with PDF, PNG, Gif, JPEG, SVG, TeX ... but not PostScript. /// /// \macro_image /// \macro_code /// /// \author Olivier Couet void transparency() { auto c1 = new TCanvas("c1", "c1",224,330,700,527); c1->Range(-0.125,-0.125,1.125,1.125); auto tex = new TLatex(0.06303724,0.0194223,"This text is opaque and this line is transparent"); tex->SetLineWidth(2); tex->Draw(); auto arrow = new TArrow(0.5555158,0.07171314,0.8939828,0.6195219,0.05,"|>"); arrow->SetLineWidth(4); arrow->SetAngle(30); arrow->Draw(); // Draw a transparent graph. Double_t x[10] = { 0.5232808, 0.8724928, 0.9280086, 0.7059456, 0.7399714, 0.4659742, 0.8241404, 0.4838825, 0.7936963, 0.743553}; Double_t y[10] = { 0.7290837, 0.9631474, 0.4775896, 0.6494024, 0.3555777, 0.622012, 0.7938247, 0.9482072, 0.3904382, 0.2410359}; auto graph = new TGraph(10,x,y); graph->SetLineColorAlpha(46, 0.1); graph->SetLineWidth(7); graph->Draw("l"); // Draw an ellipse with opaque colors. auto ellipse = new TEllipse(0.1740688,0.8352632,0.1518625,0.1010526,0,360,0); ellipse->SetFillColor(30); ellipse->SetLineColor(51); ellipse->SetLineWidth(3); ellipse->Draw(); // Draw an ellipse with transparent colors, above the previous one. ellipse = new TEllipse(0.2985315,0.7092105,0.1566977,0.1868421,0,360,0); ellipse->SetFillColorAlpha(9, 0.571); ellipse->SetLineColorAlpha(8, 0.464); ellipse->SetLineWidth(3); ellipse->Draw(); // Draw a transparent blue text. tex = new TLatex(0.04871059,0.1837649,"This text is transparent"); tex->SetTextColorAlpha(9, 0.476); tex->SetTextSize(0.125); tex->SetTextAngle(26.0); tex->Draw(); // Draw two transparent markers auto marker = new TMarker(0.03080229,0.998008,20); marker->SetMarkerColorAlpha(2, .3); marker->SetMarkerStyle(20); marker->SetMarkerSize(1.7); marker->Draw(); marker = new TMarker(0.1239255,0.8635458,20); marker->SetMarkerColorAlpha(2, .2); marker->SetMarkerStyle(20); marker->SetMarkerSize(1.7); marker->Draw(); // Draw an opaque marker marker = new TMarker(0.3047994,0.6344622,20); marker->SetMarkerColor(2); marker->SetMarkerStyle(20); marker->SetMarkerSize(1.7); marker->Draw(); }