R сюжет отменить отрезок линии? - PullRequest
2 голосов
/ 15 ноября 2011

Существует ли быстрая и простая функция для отмены сегмента или удаления его из вашего графика?

    p1 <- locator(1)
    p2 <- locator(1)
    segments(p1$x, p1$y, p2$x, p2$y, col = 'pink')
    //Undo segments

Что я имею в виду, можно ли сохранить сегмент линии (цвет / интенсивностькаждый пиксель), который вы собираетесь стереть, а затем добавьте тот отрезок линии, где розовый должен был фактически отменить рисование розового сегмента.Как можно это сделать?

Ответы [ 2 ]

6 голосов
/ 15 ноября 2011

Вы можете сделать это с сеткой графики,

library(grid)
ll = replicate(2, grid.locator())
g = grid.segments(ll[,1]$x, ll[,1]$y, ll[,2]$x, ll[,2]$y, 
      name="mysegment", gp=gpar(col="pink", lwd=5))
grid.remove("mysegment")
3 голосов
/ 15 ноября 2011

Нет.Лучшее, что вы можете сделать, если не используете grid графику, это написать поверх поврежденного сегмента в цвете фона (т.е. segments(p1$x, p1$y, p2$x, p2$y, col = 'white'), если фон белый - взлом, который иногда терпит неудачу).

Комуответьте на ваш обновленный вопрос выше о том, как хранить записанные пиксели, чтобы удалить их позже;в базовой графической системе R (в отличие от графической системы grid Пола Меррелла, как описано в @baptiste, или графики, использующей пакет rgl для динамической 3D-графики), метафора представляет собой холст, который вы рисуете.R не «помнит», что он нарисовал;эти пиксели или сегменты добавляются в устройство вывода и забываются.

...