当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。