1

(这个问题可能太难了,也许不值得麻烦解决 - 但是,如果有一个简单的解决方案 - 我很想知道)

假设我创建了一个图像(使用 grid 包),如下所示:

require(grid)
grid.newpage()
grid.polygon(x=c((0:4)/10, rep(.5, 5), (10:6)/10, rep(.5, 5)),
             y=c(rep(.5, 5), (10:6/10), rep(.5, 5), (0:4)/10),
             id=rep(1:5, 4),
             gp=gpar(fill=1:5))

但是现在,如果我希望一些多边形仅部分填充(假设一个将填充 1/3,另一个填充 1/2,另一个完全填充颜色)所以它看起来像部分填充的水杯.

我想它可以在构造多边形时完成,问题是,假设我想要一些东西来仅根据我给它的比例来计算新的多边形 - 那怎么做。

我的问题的动机来自想要在徽标图上呈现另一层信息(请参阅包 seqLogo 中的函数 seqLogo)

谢谢。

4

1 回答 1

1

您可以通过绘制两次多边形来部分填充多边形:首先用轮廓绘制整个物体但不填充,然后绘制填充。通过一个简单的矩形示例,您可以更轻松地看到这一点。

x <- c(left = 0.25, right = 0.75)
y <- c(bottom = 0.1, mid = 0.6, top = 0.9)

grid.newpage()
grid.polygon(x =  rep(x[c("left", "right", "right", "left")], 2),
             y =  y[rep(c("bottom", "top", "bottom", "mid"), each = 2)],
             id = rep(1:2, each = 4),
             gp = gpar(fill = c(NA, "blue")))
于 2011-01-05T13:24:38.717 回答