Dear Olivier,
I thank you for your comments but sometimes I can be obstinate...
You wrote:
> When you define a canvas size (50x50 and 200x200 in your case), it
> includes the window decoration puts by the window manager around the
> graphics part. For large windows it can be consider as negligible but for
> small windows (like 50x50) it becomes very clear that the graphics area is
> not square. Using the UNIX command xwininfo you can check that the
> whole window is 50x50. So if you want a graphics area being 50x50 pixels
> you should take into account the window decoration around (which depends
> on your window manager setup).
First of all, xwininfo showed 42x42. I found I should say
gStyle->SetScreenFactor(1.) to get 50x50. I captured the canvas by GIMP
and saw that the decorated window was lager than 50x50. The canvas had
size of exactly 50x50. The height/width ratio was distorted by the
Canvas menu bar. I added TCanvas::SetWindowSize() to set correct size
and gSystem->ProcessEvents() to flush changes. Now bounding boxes in the
PostScript files seem to be right.
I have next question concerning object sizes in PostScript files. I've
added a marker to my plots (See the file attached). The markers are
large on the screen and small in the .eps files. How can I get desirable
marker size (for example 6 pt or 1/2 font size)?
--
Best regards,
Maxim Nikulin
> On Thu, 26 Feb 2004, Maxim Nikulin wrote:
>
>>Dear Olivier,
>>
>>You wrote:
>>
>>>>Pixels are good units for plots on a screen. What should I do if I wish
>>>>just 12 pt font size in the PostScript file?
>>>
>>> The text you'll see on screen (in pixel size) will be exactly the same in
>>>the PostScript file. But I cannot guarantee that if you fix the size to 12
>>>pixels, that will correspond exactly, for instance, to a 12pt size in a
>>>Word document ...
>>
>>The problem is to get exact sizes on a PostScript plot. For example,
>>what should I do if I want a 5x5 cm picture containing a 12 pt label.
>>The script attached sets 5x5 cm paper size, 12 px font and draws a TText
>>in 50x50 px and 200x200 px canvases, prints their to .eps files. I get
>>plots having different height/width ratio (of course != 1).
{
gStyle->SetPaperSize(5, 5);
gStyle->SetTextFont(133);
gStyle->SetTextSize(12);
gStyle->SetScreenFactor(1.);
gStyle->SetMarkerSize(1);
c50x50 = new TCanvas("c50x50", "c50x50", 50, 50);
c50x50->SetWindowSize(50 + (50 - c50x50->GetWw()),
50 + (50 - c50x50->GetWh()));
text1 = new TText(.10, .10, "Text");
text1->Draw();
marker = new TMarker(0.25, 0.5, 2);
marker->Draw();
gSystem->ProcessEvents();
c50x50->Print("c50x50.eps");
c200x200 = new TCanvas("c200x200", "c200x200", 200, 200);
c200x200->SetWindowSize(200 + (200 - c200x200->GetWw()),
200 + (200 - c200x200->GetWh()));
text1->Draw();
marker->Draw();
gSystem->ProcessEvents();
c200x200->Print("c200x200.eps");
}
This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:06 MET