Control RGL widget like par3dinterp()
par3dinterpControl.RdThis control works with playwidget to
change settings in a WebGL display in the same way
as par3dinterp does within R.
Arguments
- fn
A function returned from
par3dinterp.- from, to, steps
Values where
fnshould be evaluated.- subscene
Which subscene's properties should be modified?
- omitConstant
If
TRUE, do not set values that are constant across the range.- ...
Additional parameters which will be passed to
propertyControl.
Details
par3dinterpSetter sets parameters corresponding to values produced by the result of
par3dinterp.
See also
The User Interaction in WebGL vignette gives more details.
Examples
example(plot3d)
#>
#> plot3d> open3d()
#> null
#> 67
#>
#> plot3d> x <- sort(rnorm(1000))
#>
#> plot3d> y <- rnorm(1000)
#>
#> plot3d> z <- rnorm(1000) + atan2(x, y)
#>
#> plot3d> plot3d(x, y, z, col = rainbow(1000))
M <- r3dDefaults$userMatrix
fn <- par3dinterp(times = (0:2)*0.75, userMatrix = list(M,
rotate3d(M, pi/2, 1, 0, 0),
rotate3d(M, pi/2, 0, 1, 0)),
scale = c(0.5, 1, 2))
control <- par3dinterpControl(fn, 0, 3, steps = 15)
control
#> $type
#> [1] "propertySetter"
#>
#> $value
#> [1] 0
#>
#> $values
#> [1] 1.000000000 0.000000000 0.000000000 0.000000000 0.342020143
#> [6] -0.939692621 0.000000000 0.939692621 0.342020143 0.500000000
#> [11] NA NA 0.998369041 0.050703068 0.026238445
#> [16] -0.007314602 0.569415722 -0.822017173 -0.056619376 0.820484573
#> [21] 0.568857901 0.534842192 NA NA 0.989105392
#> [26] 0.105661523 0.102499589 -0.060179738 0.925674268 -0.373504416
#> [31] -0.134346277 0.363266834 0.921948093 0.637640343 NA
#> [36] NA 0.990712394 0.068794966 0.117286848 -0.086684321
#> [41] 0.984106495 0.154984627 -0.104760587 -0.163712122 0.980929947
#> [46] 0.814507563 NA NA 0.996736229 -0.033919752
#> [51] -0.073255303 0.057236229 0.936865474 0.344974053 0.056928930
#> [56] -0.348040994 0.935749199 1.071663409 NA NA
#> [61] 0.828096222 -0.298486804 -0.474512672 0.343807557 0.938993751
#> [66] 0.009332723 0.442778739 -0.170869435 0.880199196 1.396176643
#> [71] NA NA 0.345267170 -0.719548401 -0.602528572
#> [76] 0.320091606 0.693799362 -0.645123097 0.882231231 0.029875488
#> [81] 0.469867545 1.731473131 NA NA 0.034119704
#> [86] -0.921358025 -0.387214714 0.048739806 0.388513287 -0.920153171
#> [91] 0.998228570 0.012522584 0.058162769 1.964985298 NA
#> [96] NA 0.034119704 -0.921358025 -0.387214714 0.048739806
#> [101] 0.388513287 -0.920153171 0.998228570 0.012522584 0.058162769
#> [106] 1.964985298 NA NA 0.345267170 -0.719548401
#> [111] -0.602528572 0.320091606 0.693799362 -0.645123097 0.882231231
#> [116] 0.029875488 0.469867545 1.731473131 NA NA
#> [121] 0.828096222 -0.298486804 -0.474512672 0.343807557 0.938993751
#> [126] 0.009332723 0.442778739 -0.170869435 0.880199196 1.396176643
#> [131] NA NA 0.996736229 -0.033919752 -0.073255303
#> [136] 0.057236229 0.936865474 0.344974053 0.056928930 -0.348040994
#> [141] 0.935749199 1.071663409 NA NA 0.990712394
#> [146] 0.068794966 0.117286848 -0.086684321 0.984106495 0.154984627
#> [151] -0.104760587 -0.163712122 0.980929947 0.814507563 NA
#> [156] NA 0.989105392 0.105661523 0.102499589 -0.060179738
#> [161] 0.925674268 -0.373504416 -0.134346277 0.363266834 0.921948093
#> [166] 0.637640343 NA NA 0.998369041 0.050703068
#> [171] 0.026238445 -0.007314602 0.569415722 -0.822017173 -0.056619376
#> [176] 0.820484573 0.568857901 0.534842192 NA NA
#> [181] 1.000000000 0.000000000 0.000000000 0.000000000 0.342020143
#> [186] -0.939692621 0.000000000 0.939692621 0.342020143 0.500000000
#> [191] NA NA
#>
#> $entries
#> [1] 0 1 2 4 5 6 8 9 10 0 NA NA
#>
#> $properties
#> [1] "userMatrix" "userMatrix" "userMatrix" "userMatrix" "userMatrix"
#> [6] "userMatrix" "userMatrix" "userMatrix" "userMatrix" "scale"
#> [11] NA NA
#>
#> $objids
#> [1] 1041
#>
#> $param
#> [1] 0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0
#>
#> $interp
#> [1] TRUE
#>
#> attr(,"class")
#> [1] "rglControl"
if (interactive() || in_pkgdown_example())
rglwidget(width = 500, height = 250) %>%
playwidget(control,
step = 0.01, loop = TRUE, rate = 0.5)