我正在尝试不使用sphere函数在Matlab中绘制一个球体。这是我的代码:
r = 2;
[ x,y ] = meshgrid(-4:0.1:4);
z = sqrt(r^2-x.^2-y.^2);
mesh(real(z));
hold on
mesh(real(-z));
上面的代码确实生成了一个方程为r^2=x^2+y^2+z^2的球体,唯一的问题是有一个水平面对球体进行切片。
我的问题是,如何绘制不显示水平面的球体?
我不使用球面函数的原因是因为我想绘制一个曲面方程。如果我使用sphere函数,那么Matlab假设我的曲面将是一个球体。
我创建这个奇怪的源代码是因为我没有找到更好更快的方法来获得球体的顶点,在3d图表的中心绘制球体的网格。 它部分起作用了:我得到了半个球体!但是所有需要的点都在那里,如果我选择"scatter3d“作为图表类型,我可以看到整个球体。那么为什么我在mesh3d中看不到它们呢? <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content
我找到了其他人的例子,它展示了如何在python中绘制一个球体,但我很好奇是否有一个方程表示沿着一个球体的各个纵向线。
示例: Python/matplotlib :绘制三维立方体、球体和向量?
# draw sphere
u, v = np.mgrid[0:2*np.pi:20j, 0:np.pi:10j]
x = np.cos(u)*np.sin(v)
y = np.sin(u)*np.sin(v)
z = np.cos(v)
ax.plot_wireframe(x, y, z, color="r")
我想要的是一个大圆圈的方程式,它沿着一个球体运行,并能画出它们