我想弄清楚如何在R中构建复杂的曲线/多边形。我们可以轻松地绘制一条简单的贝塞尔线,例如。
require(grid)
x <- c(0.25, 0.25, 0.75, 0.75)
y <- c(0.25, 0.75, 0.75, 0.25)
grid.newpage()
grid.bezier(x, y)
这个方法似乎在两个轴上按比例约束为0-1,我不确定如何在自定义比例下构建贝塞尔曲线。我也不清楚R如何将这些bezier对象一起绑定到折线和最终的多边形中。如果有人能提供一个最小的例子,我将非常感激。但另外,文档正确方向的一个点会有很大帮助,因为到目前为止我还没有找到工作流程。提前谢谢。
答案 0 :(得分:1)
据我了解grid.bezier
,您必须将个别细分链接起来。这可以通过id
参数完成,但另请参阅?grig.bezier
。
您可以通过viewports
和xscale
以及yscale
来调整比例。
library(grid)
x <- c(0.2, 0.2, 0.7, 0.4, 0.2, 0.2, 0.4, 0.4)
y <- c(0.2, 0.4, 0.7, 0.2, 0.2, 0, 0, 0.2)
grid.newpage()
grid.bezier(x, y, id=rep(1:2, each=4))
grid.newpage()
pushViewport(plotViewport(xscale=c(0, 10), yscale=c(0, 100)))
grid.xaxis()
grid.yaxis()
x <- x * 10
y <- y * 50
grid.bezier(x, y, id=rep(1:2, each=4), default.units="native")
请注意,我使用了dataViewport
,这只是一个包含viewport
的便捷功能。
答案 1 :(得分:-1)
如果您要绘制曲线的参数化“Y”,则可以
t <- c(1:1000)*0.001
plot(t,Y(t))
或类似的东西。