Re: [R] rgl zooming to an arbitrary location

2014-09-01 Thread Gareth Davies
Fantastic -- the pan3d function in the example for rgl.setMouseCallbacks 
solves the problem.


For illustration:

##

library(rgl)

# Get the pan3d function by running this rgl example [ignore the error 
caused by not having an open rgl device]

example(rgl.setMouseCallbacks)

#Make up some topography
x=runif(1e+06, min=0,max=1000)
y=runif(1e+06, min=0,max=1000)

# Elevation with 'hill' in the centre
z=sin(x/50.)+cos(y/50.) + 30*exp(-((x-500)^2+(y-500)^2)*0.001)

plot3d(x,y,z,col=z+3,aspect=FALSE)
pan3d(3) # This makes my 'middle' mouse button function like pan



On 02/09/14 06:25, Duncan Murdoch wrote:

On 31/08/2014, 11:12 PM, Gareth Davies wrote:

I have been using rgl to view xyz point clouds containing topographic
data ( with around 10^5 - 10^6 points).

It's working well aside from one thing: I would like to be able to zoom
into an arbitrary part of the plot. However so far I could only figure
out how to zoom into the centre.

See the example below -- in this case, I cannot 'zoom-in' to anything
other than the central hill in the topography, whereas I would like to
be able to zoom to an arbitrary location.

Is there a way to get around this?

Yes, you can manually set the userMatrix transformation.  See ?par3d for
a discussion about how rgl figures out what to display.  See the example
in ?rgl.setMouseCallbacks for some code that does something like what
you want.

There are plans to make this a little simpler in the next major release,
but no definite release date.

Duncan Murdoch


##
# EXAMPLE CODE
##
library(rgl)
# Make up some topography
x=runif(1e+06, min=0,max=1000)
y=runif(1e+06, min=0,max=1000)
# Elevation with 'hill' in the centre
z=sin(x/50.)+cos(y/50.) + 30*exp(-((x-500)^2+(y-500)^2)*0.001)
plot3d(x,y,z,col=z+3,aspect=FALSE)
# Now try zooming [right mouse button]. I can only zoom into the central
hill, not elsewhere.


Below are the details of my R Install

  > sessionInfo()
R version 3.1.1 (2014-07-10)
Platform: x86_64-unknown-linux-gnu (64-bit)

locale:
   [1] LC_CTYPE=en_AU.UTF-8   LC_NUMERIC=C
   [3] LC_TIME=en_AU.UTF-8LC_COLLATE=en_AU.UTF-8
   [5] LC_MONETARY=en_AU.UTF-8LC_MESSAGES=en_AU.UTF-8
   [7] LC_PAPER=en_AU.UTF-8   LC_NAME=C
   [9] LC_ADDRESS=C   LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_AU.UTF-8 LC_IDENTIFICATION=C

attached base packages:
[1] stats graphics  grDevices utils datasets  methods base

other attached packages:
   [1] rgl_0.93.1098unstructInterp_0.0-1 rgeos_0.3-6
   [4] rgdal_0.8-16 sp_1.0-15geometry_0.3-4
   [7] magic_1.5-6  abind_1.4-0  SearchTrees_0.5.2
[10] roxygen2_4.0.1

loaded via a namespace (and not attached):
[1] digest_0.6.4grid_3.1.1  lattice_0.20-29 Rcpp_0.11.2
[5] stringr_0.6.2   tools_3.1.1
  >

__
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.



__
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.


Re: [R] rgl zooming to an arbitrary location

2014-09-01 Thread Duncan Murdoch
On 31/08/2014, 11:12 PM, Gareth Davies wrote:
> 
> I have been using rgl to view xyz point clouds containing topographic 
> data ( with around 10^5 - 10^6 points).
> 
> It's working well aside from one thing: I would like to be able to zoom 
> into an arbitrary part of the plot. However so far I could only figure 
> out how to zoom into the centre.
> 
> See the example below -- in this case, I cannot 'zoom-in' to anything 
> other than the central hill in the topography, whereas I would like to 
> be able to zoom to an arbitrary location.
> 
> Is there a way to get around this?

Yes, you can manually set the userMatrix transformation.  See ?par3d for
a discussion about how rgl figures out what to display.  See the example
in ?rgl.setMouseCallbacks for some code that does something like what
you want.

There are plans to make this a little simpler in the next major release,
but no definite release date.

Duncan Murdoch

> 
> ##
> # EXAMPLE CODE
> ##
> library(rgl)
> # Make up some topography
> x=runif(1e+06, min=0,max=1000)
> y=runif(1e+06, min=0,max=1000)
> # Elevation with 'hill' in the centre
> z=sin(x/50.)+cos(y/50.) + 30*exp(-((x-500)^2+(y-500)^2)*0.001)
> plot3d(x,y,z,col=z+3,aspect=FALSE)
> # Now try zooming [right mouse button]. I can only zoom into the central 
> hill, not elsewhere.
> 
> 
> Below are the details of my R Install
> 
>  > sessionInfo()
> R version 3.1.1 (2014-07-10)
> Platform: x86_64-unknown-linux-gnu (64-bit)
> 
> locale:
>   [1] LC_CTYPE=en_AU.UTF-8   LC_NUMERIC=C
>   [3] LC_TIME=en_AU.UTF-8LC_COLLATE=en_AU.UTF-8
>   [5] LC_MONETARY=en_AU.UTF-8LC_MESSAGES=en_AU.UTF-8
>   [7] LC_PAPER=en_AU.UTF-8   LC_NAME=C
>   [9] LC_ADDRESS=C   LC_TELEPHONE=C
> [11] LC_MEASUREMENT=en_AU.UTF-8 LC_IDENTIFICATION=C
> 
> attached base packages:
> [1] stats graphics  grDevices utils datasets  methods base
> 
> other attached packages:
>   [1] rgl_0.93.1098unstructInterp_0.0-1 rgeos_0.3-6
>   [4] rgdal_0.8-16 sp_1.0-15geometry_0.3-4
>   [7] magic_1.5-6  abind_1.4-0  SearchTrees_0.5.2
> [10] roxygen2_4.0.1
> 
> loaded via a namespace (and not attached):
> [1] digest_0.6.4grid_3.1.1  lattice_0.20-29 Rcpp_0.11.2
> [5] stringr_0.6.2   tools_3.1.1
>  >
> 
> __
> 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.
>

__
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.


[R] rgl zooming to an arbitrary location

2014-08-31 Thread Gareth Davies


I have been using rgl to view xyz point clouds containing topographic 
data ( with around 10^5 - 10^6 points).


It's working well aside from one thing: I would like to be able to zoom 
into an arbitrary part of the plot. However so far I could only figure 
out how to zoom into the centre.


See the example below -- in this case, I cannot 'zoom-in' to anything 
other than the central hill in the topography, whereas I would like to 
be able to zoom to an arbitrary location.


Is there a way to get around this?

##
# EXAMPLE CODE
##
library(rgl)
# Make up some topography
x=runif(1e+06, min=0,max=1000)
y=runif(1e+06, min=0,max=1000)
# Elevation with 'hill' in the centre
z=sin(x/50.)+cos(y/50.) + 30*exp(-((x-500)^2+(y-500)^2)*0.001)
plot3d(x,y,z,col=z+3,aspect=FALSE)
# Now try zooming [right mouse button]. I can only zoom into the central 
hill, not elsewhere.



Below are the details of my R Install

> sessionInfo()
R version 3.1.1 (2014-07-10)
Platform: x86_64-unknown-linux-gnu (64-bit)

locale:
 [1] LC_CTYPE=en_AU.UTF-8   LC_NUMERIC=C
 [3] LC_TIME=en_AU.UTF-8LC_COLLATE=en_AU.UTF-8
 [5] LC_MONETARY=en_AU.UTF-8LC_MESSAGES=en_AU.UTF-8
 [7] LC_PAPER=en_AU.UTF-8   LC_NAME=C
 [9] LC_ADDRESS=C   LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_AU.UTF-8 LC_IDENTIFICATION=C

attached base packages:
[1] stats graphics  grDevices utils datasets  methods base

other attached packages:
 [1] rgl_0.93.1098unstructInterp_0.0-1 rgeos_0.3-6
 [4] rgdal_0.8-16 sp_1.0-15geometry_0.3-4
 [7] magic_1.5-6  abind_1.4-0  SearchTrees_0.5.2
[10] roxygen2_4.0.1

loaded via a namespace (and not attached):
[1] digest_0.6.4grid_3.1.1  lattice_0.20-29 Rcpp_0.11.2
[5] stringr_0.6.2   tools_3.1.1
>

__
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.