/ / R trama annulla segmento di linea? - r, segmento

R trama annulla segmento di linea? - r, segmento

C'è una funzione rapida e semplice per annullare un segmento o rimuoverlo dalla trama?

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

Quello che intendo dire è, è possibile archiviareil segmento di linea (colore / intensità di ciascun pixel) che stai per cancellare, e successivamente aggiungere quel segmento di linea in cui quello rosa doveva effettivamente annullare l'estrazione del segmento rosa. Come si potrebbe raggiungere questo?

risposte:

6 per risposta № 1

Puoi farlo con la grafica Grid,

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 per risposta № 2

No. A proposito del meglio che puoi fare a meno che tu non lo usi grid la grafica deve scrivere sul segmento all'origine del colore di sfondo (ad es. segments(p1$x, p1$y, p2$x, p2$y, col = "white") se lo sfondo è bianco - un trucco che a volte fallisce).

Per rispondere alla domanda aggiornata sopra in merito a come archiviare in qualche modo i pixel scritti per rimuoverli in seguito; nel sistema di grafica di base di R (come distinto da Paul Murrell "s grid sistema grafico, come discusso da @baptiste, o grafica usando il rgl pacchetto per la grafica 3D dinamica) la metafora è di una tela che stai dipingendo, R non "ricorda" ciò che ha disegnato; quei pixel o segmenti vengono aggiunti al dispositivo di output e dimenticati.