全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
2036 4
2010-06-03
================================

是这样,我想画一个图,方程是:
x^2+y^2+z^2=1

也就是个圆,

怎么画?用persp3d。


==============================

我是这样做的,

fn1 = function(x,y) {

(1-x^2-y^2)^(1/2)
}
fn2 = function(x,y) {

-(1-x^2-y^2)^(1/2)
}
a = 1
x = seq(-a, a, 0.01)
y = seq(-a, a, 0.01)
z1 = outer(x, y, fn1)
z2 = outer(x, y, fn2)
zorder = rank(z1)
persp3d(x, y, z1,col = rainbow(as.integer(max(zorder)))[zorder],add=TRUE)
persp3d(x, y, z2,col = rainbow(as.integer(max(zorder)))[zorder],add=TRUE)


最后问题是,两图合不到一起,这个很好理解,因为边缘的一些值肯定取不到。


大家看看如何解决?

另外:如果是要画极其复杂的三元方程怎么办?总不能就像我那样硬分成两个吧?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2010-6-3 23:20:10
顶起来。。。。。。。。。。。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-6-4 09:47:58
有人知道么?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-6-5 15:59:59
你画的不是圆吧,而是球,画球体应该比较复杂,偶也很想知道
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-6-7 03:43:30
try this:

lat <- matrix(seq(90,-90, len=50)*pi/180, 50, 50, byrow=TRUE)
long <- matrix(seq(-180, 180, len=50)*pi/180, 50, 50)

r <- 1
x <- -r*cos(lat)*cos(long)
y <- r*sin(lat)
z <- r*cos(lat)*sin(long)

open3d()
persp3d(x, y, z, col="white" )
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群