Dear all, I need to run a interactive procedure where the user will need click on the screen (over a XY plot) and I need to record the XY coordinate which the user clicked. Roughly I wrote a short code below. You see that I suppose that the user will choose four coordinates inside the region of intersection between three segmentes. On each click, I would like to record the position clicked in a vector. Any help are welcome. Miltinho ----- number.clicks<-4 for (i in 1:number.clicks) { plot(0,0, type="n") seg1<-arrows(-0.5,-1,0.5,0, col=1) seg2<-arrows(0,-1,-0.3,0.3, col=2) seg3<-arrows(0.2,-0.7,-0.5,0, col=4) # here I would like click on PLOT # and record de XY position # before go to next aquisition } [[alternative HTML version deleted]]
?locator On Fri, Jun 20, 2008 at 11:25 PM, milton ruser <milton.ruser at gmail.com> wrote:> Dear all, > > I need to run a interactive procedure where the user > will need click on the screen (over a XY plot) > and I need to record the XY coordinate which the > user clicked. Roughly I wrote a short code below. > You see that I suppose that the user will choose > four coordinates inside the region of intersection > between three segmentes. On each click, I would like to > record the position clicked in a vector. > Any help are welcome. > > Miltinho > ----- > number.clicks<-4 > for (i in 1:number.clicks) > { > plot(0,0, type="n") > seg1<-arrows(-0.5,-1,0.5,0, col=1) > seg2<-arrows(0,-1,-0.3,0.3, col=2) > seg3<-arrows(0.2,-0.7,-0.5,0, col=4) > # here I would like click on PLOT > # and record de XY position > # before go to next aquisition > } > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at 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. >-- Jim Holtman Cincinnati, OH +1 513 646 9390 What is the problem you are trying to solve?
Jim, In fact, if I click "stop" the for() looping and stop, and I need to continue on the for(). By other side, is there a way of I ask for the user "acquire point" (with a dialog box with Yes or No options), and if the user anwer Yes I collect the points, otherwise I go for the next step of for() looping? sorry for do it so trouble. Kind regards miltinho On 6/21/08, jim holtman <jholtman@gmail.com> wrote:> > I am not sure how you would record a NULL. I assume that if you click > 'stop', then the result returned is a NULL and you can test for that. > Once you start collecting points, you should not have a NULL in the > series. > > On Fri, Jun 20, 2008 at 11:56 PM, milton ruser <milton.ruser@gmail.com> > wrote: > > Thanks Jim. > > > > I included your suggestion on the script and run fine. > > But how can I skip (record X and Y as NULL) on some steps? > > On this example it don´t occour, but when working with real data I will > need > > bypass some acquisitions. Is there a way of do it on a for() looping? I > > noticed that if I click on right button of mouse the locator() ask for > > continue or stop. But some times I just want to record NULL for the > > position. > > > > Thanks a lot, > > > > Miltinho > > ===========> > > > number.clicks<-4 > > my.coords<-NULL > > > > for (i in 1:number.clicks) > > { > > plot(0,0, type="n") > > seg1<-arrows(-0.5,-1,0.5,0, col=1) > > seg2<-arrows(0,-1,-0.3,0.3, col=2) > > seg3<-arrows(0.2,-0.7,-0.5,0, col=4) > > > > coord<-locator(1, type="p") > > my.coords<-rbind(my.coords, cbind(x=coord$x, y=coord$y)) > > } > > > > my.coords > > > > > > > > -- > Jim Holtman > Cincinnati, OH > +1 513 646 9390 > > What is the problem you are trying to solve? >[[alternative HTML version deleted]]