當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


R deviceLoc 將視口位置轉換為設備位置

R語言 deviceLoc 位於 grid 包(package)。

說明

這些函數采用一對單位對象並將它們轉換為一對以英寸(或本機設備坐標)為單位的設備位置(或尺寸)。

用法

deviceLoc(x, y, valueOnly = FALSE, device = FALSE)
deviceDim(w, h, valueOnly = FALSE, device = FALSE)

參數

x, y, w, h

一個單位對象。

valueOnly

邏輯指示。如果TRUE,則該函數不返回單位對象,而僅返回轉換後的數值。

device

指示返回值是否應以英寸為單位或本機設備單位的邏輯。

細節

這些函數與 convertX() 等函數不同,因為它們從視口內的坐標係轉換為設備上的英寸(即從一個視口到另一個視口),並且因為它們隻處理成對的值(位置或尺寸)。

convertX() 這樣的函數在同一視口內的不同單位之間進行轉換並沿單個維度進行轉換。

包含兩個組件的列表,這兩個組件都是以英寸為單位的單位對象(除非 valueOnlyTRUE,在這種情況下,兩個組件都是數字)。

警告

該轉換僅對當前設備尺寸有效。如果調整設備大小,則至少某些轉換將變得無效。

此外,返回的值僅對整個設備有意義(即,在根視口的上下文中)。

例子

## A tautology
grid.newpage()
pushViewport(viewport())
deviceLoc(unit(1, "inches"), unit(1, "inches"))

## Something less obvious
grid.newpage()
pushViewport(viewport(width=.5, height=.5))
grid.rect()
x <- unit(1, "in")
y <- unit(1, "in")
grid.circle(x, y, r=unit(2, "mm"))
loc <- deviceLoc(x, y)
loc
upViewport()
grid.circle(loc$x, loc$y, r=unit(1, "mm"), gp=gpar(fill="black"))

## Something even less obvious
grid.newpage()
pushViewport(viewport(width=.5, height=.5, angle=30))
grid.rect()
x <- unit(.2, "npc")
y <- unit(2, "in")
grid.circle(x, y, r=unit(2, "mm"))
loc <- deviceLoc(x, y)
loc
upViewport()
grid.circle(loc$x, loc$y, r=unit(1, "mm"), gp=gpar(fill="black"))

作者

Paul Murrell

也可以看看

unit

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Convert Viewport Location to Device Location。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。