楼主: G_will
2067 4

求助,关于画图。 [推广有奖]

  • 0关注
  • 0粉丝

已卖:149份资源

博士生

44%

还不是VIP/贵宾

-

威望
0
论坛币
214 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1992 点
帖子
135
精华
0
在线时间
379 小时
注册时间
2008-4-4
最后登录
2014-5-5

楼主
G_will 发表于 2010-6-3 23:13:55 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
================================

是这样,我想画一个图,方程是:
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)


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


大家看看如何解决?

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

扫码加我 拉你入群

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

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

关键词:function Rainbow Integer Order rain 求助 画图

回帖推荐

pandahc 发表于5楼  查看完整内容

try this: lat

本帖被以下文库推荐

沙发
gssdzc 在职认证  发表于 2010-6-3 23:20:10
顶起来。。。。。。。。。。。

藤椅
G_will 发表于 2010-6-4 09:47:58
有人知道么?

板凳
aresblq 发表于 2010-6-5 15:59:59
你画的不是圆吧,而是球,画球体应该比较复杂,偶也很想知道

报纸
pandahc 发表于 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" )

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-1 17:21