2013-02-05 12 views
8

plot3d() tworzy działkę 3d, którą mogę przekręcić i obrócić. Ale kiedy ponownie zadzwonię pod numer plot3d(), poprzedni wątek zniknie i zostanie zastąpiony przez ten.plot3D - posiadanie dwóch działek naraz

Jak mogę to zrobić, aby nowe okno XQuartz otworzyło się zamiast starego okna zastąpionego przez nowy wykres 3d.

Zasadniczo chcę otworzyć dwie działki 3D jednocześnie.

+1

dodał tag 'rgl', ponieważ zakładam, że jest to funkcja, z której pochodzi funkcja –

Odpowiedz

11

tak:

library(rgl) 

open3d() 
x <- sort(rnorm(1000)) 
y <- rnorm(1000) 
z <- rnorm(1000) + atan2(x,y) 
plot3d(x, y, z, col=rainbow(1000)) 

open3d() 
x <- sort(rnorm(20)) 
y <- rnorm(20) 
z <- rnorm(20) + atan2(x,y) 
plot3d(x, y, z, col=rainbow(20)) 

Kluczem tutaj jest wywołanie open3d przed drugim wykresie, aby otworzyć nową „urządzeniem”

2

Możesz odkryć, że okno 2nd RGL kreślenia po prostu zostały umieszczone dokładnie na górze wcześniejszego okna. Jeśli przesuniesz drugie okno, zobaczysz, że pierwszy nadal tam jest (chociaż nie ma teraz statusu "Focus".) Nie ma potrzeby rysowania na urządzeniach, aby były dostępne. Zmienić wdowę że zdobycie s ostrość z rgl.set:

> open3d() 
[1] 3  # might have been "1" 
> open3d() 
[1] 4 # Now move that 2nd window to the side 
> rgl.set(3) 
#Focus is returned to the first window. 

Nie można mieć 2 okien aktywnych (w sensie uzyskania commnds) naraz, ale można je zarówno widoczne, a jeśli został ustawiony przędzenia będzie się kręcić, gdy ostrość zostanie przesunięta do drugiego okna. Możesz także dodać istniejący dział z funkcją plot3d, jeśli ustawisz add=TRUE.

Powiązane problemy