2013-10-26 4 views
0

Я пытаюсь построить две окружности с размерами xy вместе с 3D-графикой и покрасить пересечение двух кругов, как я могу это сделать?линии уровня линии (2 окружности) на 3d-графике

# objective function 
x <- seq(-1,1,.1) 
y <- seq(-1,1,.1) 
z <- x^2 + y^2 

library(scatterplot3d) 
library(plotrix) 
scatterplot3d(x,y,z,pch=19,color="royalblue4") 
draw.circle (1,1,1) 
draw.circle (1,-1,1) 
+0

Если вы хотите построить два 'draw.circle's с' scatterplot3d', я не думаю, что вам это удастся, потому что ' draw.circle' видит «2D (если вы назовете« ось (1) », вы увидите, где находятся два' draw.circle ', если они построены). Я не уверен, однако, того, чего вы пытаетесь достичь. Вы хотите построить 2 круга в 3D? Какова связь между вызовом 'scatterplot3d (x, y ....' и двумя последними кругами, которые вы хотите построить? –

ответ

1

Я на самом деле не в математические вещи, но я выложу в качестве ответа, потому что это может быть полезными и, кроме того, слишком велик для комментария. Извините мое незнание, хотя, если я отправляю глупости.

#your data 
library(scatterplot3d) 
x <- seq(-1,1,.1) 
y <- seq(-1,1,.1) 
z <- x^2 + y^2 

ang = 60 #angle of the 3D plot. experiment with different values 

#your 3D plot, with extended xx', yy' limits 
sp3d <- scatterplot3d(x, y, z, pch=19, color="royalblue4", 
      xlim = c(-1, 3), ylim = c(-3, 3), angle = ang) 

#to use parametric equations of circles 
f <- seq(-2*pi, 2*pi, 0.1) 

#circle1 
sp3d$points(x = 1 + 1*cos(f), y = 1 + 1*sin(f), z = rep(0, length(f)), type = "l") 
#circle2 
sp3d$points(x = 1 + 1*cos(f), y = -1 + 1*sin(f), z = rep(0, length(f)), type = "l") 

Сюжет:

sp3d

Смежные вопросы