Re: [R] Determining physical display dimensions

2005-08-20 Thread Marc Schwartz
On Fri, 2005-08-19 at 13:17 -0500, Earl F. Glynn wrote: 
 Berton Gunter [EMAIL PROTECTED] wrote in message
 news:[EMAIL PROTECTED]
 
  Failing that, (how) can this be done for Windows (XP or 2000, say) ?
 
 Take a look at the Windows GetDeviceCaps API call
 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/devcons_88s3.asp
 
 Parameters that can be queried include:
 HORZRES  Width, in pixels, of the screen.
 VERTRES Height, in raster lines, of the screen.
 
 HORZSIZE Width, in millimeters, of the physical screen
 VERTSIZE  Height, in millimeters, of the physical screen
 
 The specifics of how to use this API call will vary by language.  Google
 will be your friend.


FWIW, in case anyone should see this thread and wonder how to do this
somewhat easily in R for systems running X, there is a CLI utility
called 'xdpyinfo' that returns a great deal of data on the connected
display(s).


 display.size - system(xdpyinfo | grep dimensions, intern = TRUE)
 display.dpi - system(xdpyinfo | grep resolution, intern = TRUE)

 display.size
[1]   dimensions:1600x1200 pixels (301x231 millimeters)

 display.dpi
[1]   resolution:135x132 dots per inch


One can then parse the above using R functions as required. Such as:

 d.size - unlist(strsplit(display.size, split = [[:space:]|(|)|x]))

 d.size
[1] dimensions: 
[5] 16001200
[9] pi  els 301
[13] 231 millimeters 


 h.pix - as.numeric(d.size[7])
 v.pix - as.numeric(d.size[8])

 h.mm - as.numeric(d.size[12])
 v.mm - as.numeric(d.size[13])


 line1 - sprintf(The current display is %d x %d pixels, 
h.pix, v.pix)


 line2 - sprintf(with a physical size of %d x %d mm, h.mm, v.mm)


 cat(line1, line2, sep = \n)
The current display is 1600 x 1200 pixels
with a physical size of 301 x 231 mm


This can get more complicated with multi-monitor systems, depending upon
whether you are running in xinerama (multi-monitor spanning mode) or
non-xinerama mode and consideration for symmetric or asymmetric
resolutions. 'man xdpyinfo' and 'man X' (noting the 'DISPLAY'
environment variable) will be helpful here to determine which
display/screen R is running on.

For example, on my system which has two displays, each with 1600x1200, I
get:

 Sys.getenv(DISPLAY)
DISPLAY
 :0.0

with R running on the main laptop LCD (15 diag), versus:

 Sys.getenv(DISPLAY)
DISPLAY
 :0.1

with R running on the external LCD (20.1 diag), with the DISPLAY
variable indicating:

:DisplayNumber.ScreenNumber


Thus, on my system, the output of the system() calls are actually:

 display.size - system(xdpyinfo | grep dimensions, intern = TRUE)
 display.dpi - system(xdpyinfo | grep resolution, intern = TRUE)

 display.size
[1]   dimensions:1600x1200 pixels (301x231 millimeters)
[2]   dimensions:1600x1200 pixels (411x311 millimeters)

 display.dpi
[1]   resolution:135x132 dots per inch
[2]   resolution:99x98 dots per inch


HTH,

Marc Schwartz

__
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html


[R] Determining physical display dimensions

2005-08-19 Thread Berton Gunter

Folks:

(Basically a non-R question).

Is there any (simple) OS independent way for (the latest version of) R to
determine the physical dimensions in pixels of the current display device?

Failing that, (how) can this be done for Windows (XP or 2000, say) ?

Thanks.

-- Bert Gunter
Genentech Non-Clinical Statistics
South San Francisco, CA
 
The business of the statistician is to catalyze the scientific learning
process.  - George E. P. Box

__
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html


Re: [R] Determining physical display dimensions

2005-08-19 Thread Liaw, Andy
The screen devices are not platform independent, so I guess not.

The height and width arguments for windows() is in physical inches, and the
ypinch and xpinch specify pixels per inch, according to ?windows.

Andy

 From: Berton Gunter
 
 Folks:
 
 (Basically a non-R question).
 
 Is there any (simple) OS independent way for (the latest 
 version of) R to
 determine the physical dimensions in pixels of the current 
 display device?
 
 Failing that, (how) can this be done for Windows (XP or 2000, say) ?
 
 Thanks.
 
 -- Bert Gunter
 Genentech Non-Clinical Statistics
 South San Francisco, CA
  
 The business of the statistician is to catalyze the 
 scientific learning
 process.  - George E. P. Box
 
 __
 R-help@stat.math.ethz.ch mailing list
 https://stat.ethz.ch/mailman/listinfo/r-help
 PLEASE do read the posting guide! 
 http://www.R-project.org/posting-guide.html
 
 


__
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html


Re: [R] Determining physical display dimensions

2005-08-19 Thread Earl F. Glynn
Berton Gunter [EMAIL PROTECTED] wrote in message
news:[EMAIL PROTECTED]

 Failing that, (how) can this be done for Windows (XP or 2000, say) ?

Take a look at the Windows GetDeviceCaps API call
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/devcons_88s3.asp

Parameters that can be queried include:
HORZRES  Width, in pixels, of the screen.
VERTRES Height, in raster lines, of the screen.

HORZSIZE Width, in millimeters, of the physical screen
VERTSIZE  Height, in millimeters, of the physical screen

The specifics of how to use this API call will vary by language.  Google
will be your friend.

efg
Bioinformatics
Stowers Institute for Medical Research

__
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html