grid.curve
位于 grid
包(package)。 说明
这些函数创建并绘制从一个位置到另一个位置的曲线。
用法
grid.curve(...)
curveGrob(x1, y1, x2, y2, default.units = "npc",
curvature = 1, angle = 90, ncp = 1, shape = 0.5,
square = TRUE, squareShape = 1,
inflect = FALSE, arrow = NULL, open = TRUE,
debug = FALSE,
name = NULL, gp = gpar(), vp = NULL)
arcCurvature(theta)
参数
x1 |
指定起始点 x-location 的数值向量或单位对象。 |
y1 |
指定起始点 y-location 的数值向量或单位对象。 |
x2 |
指定终点x-location的数值向量或单位对象。 |
y2 |
指定终点y-location的数值向量或单位对象。 |
default.units |
一个字符串,指示仅以数值形式给出 |
curvature |
给出曲率量的数值。负值产生左手曲线,正值产生右手曲线,零产生直线。 |
angle |
0 到 180 之间的数值,给出曲线控制点的倾斜量。小于 90 的值使曲线向起点倾斜,大于 90 的值使曲线向终点倾斜。 |
ncp |
用于绘制曲线的控制点的数量。更多控制点可创建更平滑的曲线。 |
shape |
由 -1 到 1 之间的值组成的数值向量,用于控制曲线相对于其控制点的形状。有关更多详细信息,请参阅 |
square |
控制是否以 city-block 方式或倾斜方式创建曲线控制点的逻辑值。当 |
squareShape |
|
inflect |
一个逻辑值,指定曲线是否应切成两半并反转(请参见下面的示例)。 |
arrow |
说明放置在曲线两端的箭头的列表,由 |
open |
一个逻辑值,指示是否闭合曲线(连接起点和终点)。 |
debug |
指示是否应绘制调试信息的逻辑值。 |
name |
字符标识符。 |
gp |
类 |
vp |
网格视口对象(或 NULL)。 |
... |
要传递给 |
theta |
角度(以度为单位)。 |
细节
这两个函数都创建一个曲线grob(说明曲线的图形对象),但只有grid.curve
绘制曲线。
arcCurvature
函数可用于计算curvature
,从而在与角度theta
对应的圆弧上生成控制点。这通常与大型 ncp
结合使用,以生成与所需弧线相对应的曲线。
值
一个抓取对象。
例子
curveTest <- function(i, j, ...) {
pushViewport(viewport(layout.pos.col=j, layout.pos.row=i))
do.call("grid.curve", c(list(x1=.25, y1=.25, x2=.75, y2=.75), list(...)))
grid.text(sub("list\\((.*)\\)", "\\1",
deparse(substitute(list(...)))),
y=unit(1, "npc"))
popViewport()
}
# grid.newpage()
pushViewport(plotViewport(c(0, 0, 1, 0),
layout=grid.layout(2, 1, heights=c(2, 1))))
pushViewport(viewport(layout.pos.row=1,
layout=grid.layout(3, 3, respect=TRUE)))
curveTest(1, 1)
curveTest(1, 2, inflect=TRUE)
curveTest(1, 3, angle=135)
curveTest(2, 1, arrow=arrow())
curveTest(2, 2, ncp=8)
curveTest(2, 3, shape=0)
curveTest(3, 1, curvature=-1)
curveTest(3, 2, square=FALSE)
curveTest(3, 3, debug=TRUE)
popViewport()
pushViewport(viewport(layout.pos.row=2,
layout=grid.layout(3, 3)))
curveTest(1, 1)
curveTest(1, 2, inflect=TRUE)
curveTest(1, 3, angle=135)
curveTest(2, 1, arrow=arrow())
curveTest(2, 2, ncp=8)
curveTest(2, 3, shape=0)
curveTest(3, 1, curvature=-1)
curveTest(3, 2, square=FALSE)
curveTest(3, 3, debug=TRUE)
popViewport(2)
也可以看看
相关用法
- R grid.copy 制作网格图形对象的副本
- R grid.convert 不同网格坐标系之间的转换
- R grid.clip 设置剪切区域
- R grid.cap 捕获光栅图像
- R grid.circle 画一个圆
- R grid.draw 画一个网格
- R grid.stroke 描边或填充路径
- R grid.raster 渲染光栅对象
- R grid.points 绘制数据符号
- R grid.force 强制将一个对象放入其组件中
- R grid.display.list 控制网格显示列表
- R grid.show.viewport 绘制网格视口图
- R grid.segments 绘制线段
- R grid.frame 创建用于包装对象的框架
- R grid.group 画一个组
- R grid.pack 将对象打包在框架内
- R grid.text 绘制文字
- R grid.xspline 绘制 X 样条线
- R grid.record 封装计算和绘图
- R grid.pretty 生成一组合理(“漂亮”)的断点
- R grid.grab 抓取当前电网输出
- R grid.show.layout 绘制网格布局图
- R grid.DLapply 修改网格显示列表
- R grid.delay 封装计算并生成grob
- R grid.polygon 绘制多边形
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Draw a Curve Between Locations。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。