Линии уровня графика (2 окружности) на трехмерном графике

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

# 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)

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

Другие вопросы по тегам