FOR what it's worth this dev.hold/dev/flush combination does not seem
to prevent flickering on the quartz device on Macs.
Best,
luke
On Sat, 2 Jun 2012, Duncan Murdoch wrote:
On 12-06-02 4:02 PM, Daniel Carr wrote:
Most of my animations that used to work
on windows() version 2.11.1 and earlier now flash
as if the double buffering is turned off or buffer swapping
is triggered by other events than in the past.
The simplified example below using symbols
should illustrate the problem in a windows environment.
windows()
radius<- 8
n<- 6
ang<- seq(0,2*pi,length=n+1)[-(n+1)]
ca<- cos(ang)
sa<- sin(ang)
size<- c(.1, .3, .5, .7, .9, 1)
colors<- rainbow(length(size))
for (i in 1:1000){
radius<- radius*.998
bnd<- (radius+1)* c(-1, 1)
cenX<- radius*ca
cenY<- radius*sa
symbols(cenX, cenY, circles = size,
xlim=bnd, ylim=bnd, bg=colors)
}
I have not isolated the version when the flashing
started but it somewhere between
2.11.1 and 2.14.1.
I did some searching on double-buffering
problems in R but didn't find indications
of this particular problem.
Slowing the animation down did not help.
I don't think there was ever a guarantee that double buffering would be
sufficient for what you were doing: you just got lucky.
What you need to do (and this should work, at least on the windows() device
and some others), is use dev.hold() to stop redrawing, and dev.flush() when
you are ready to display the new stuff. Your loop becomes something like
this:
for (i in 1:1000){
dev.hold()
radius <- radius*.998
bnd <- (radius+1)* c(-1, 1)
cenX <- radius*ca
cenY <- radius*sa
symbols(cenX, cenY, circles = size,
xlim=bnd, ylim=bnd, bg=colors)
dev.flush()
}
The dev.hold() function was introduced in 2.14.0. I think dev.flush()
existed earlier, but not for all systems.
Duncan Murdoch
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
--
Luke Tierney
Chair, Statistics and Actuarial Science
Ralph E. Wareham Professor of Mathematical Sciences
University of Iowa Phone: 319-335-3386
Department of Statistics and Fax: 319-335-3017
Actuarial Science
241 Schaeffer Hall email: luke-tier...@uiowa.edu
Iowa City, IA 52242 WWW: http://www.stat.uiowa.edu
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.