lenapu 发表于 2007-11-21 20:43

如何对球体进行颜色分配

一球体中处处分布有电场,且电场和球体中每点的坐标有关系,在此先不予考虑,设电场为E(x,y,z)。我要如何把不同的电场用不同的颜色在球体中标出呢?请教各位了,还望相助,谢谢。

[ 本帖最后由 eight 于 2007-11-21 22:20 编辑 ]

xjzuo 发表于 2007-11-21 23:45

请将问题贴出。
另:可参照论坛已有的帖子自己先试试。------我的一个示例贴中也提到过此类问题。

lenapu 发表于 2007-11-22 10:56

还是是不懂呢,还请帮忙,呵呵

花如月 发表于 2007-11-22 11:00

回复 #3 lenapu 的帖子

不要太依赖别人,多动手,多看help和里边的例子

xjzuo 发表于 2007-11-22 16:57

E(x,y,z)画图的办法可以参考我的关于四维图画法的示例贴-------数值积分求出E(x,y,z)画图即可。
求解方法也可参考我的另一个示例贴“关于带参数的积分问题 ”,若不知向量化方法,作循环即可。

lenapu 发表于 2007-11-22 21:46

我写了个比较笨的程序,大概得到我要的分布在球体表面的电场
我要怎么样才能把那个球体上的网格去掉呢?
k = 6;
n = 2^k-1;
= sphere(n);
for i=1:length(X)
for j=1:length(Y)
XX=X(i,j);
YY=Y(i,j);
ZZ=Z(i,j);
fun=['0.2*cos(x)./((',num2str(XX),'-0.2-0.2*cos(x)).^2+(',num2str(YY),'-0.2*sin(x)).^2+(',num2str(ZZ),'-1.1).^2).^(1/2)-0.2*cos(x)./((',num2str(XX),'+0.2-0.2*cos(x)).^2+(',num2str(YY),'+0.2*sin(x)).^2+(',num2str(ZZ),'-1.1).^2).^(1/2)'];
c0(i,j)=quadl(inline(fun),0,2*pi);
%计算电场,即为颜色矩阵
end
end
C=c0;
surf(X,Y,Z,C);
h=surf(X,Y,Z,C);
rotate(h,,60);

lenapu 发表于 2007-11-23 20:18

知道了
surf(X,Y,Z,C,'linestyle','none');

xjzuo 发表于 2007-11-23 22:17

按照提示自己动手,值得鼓励。

希望以后也能自己多思考,不要连help一下命令即知的简单问题(网格去掉)也立刻发贴来问。
我个人喜欢就知道的问题给出思路和建议,感兴趣的问题参与讨论,太简单的问题可能不会回答。
这点也请那些误会的人多多体谅,毕竟个人时间和精力有限。

另:虽然画出了图,但我还是要提醒一下:你的代码跟你的公式似乎并不一致。

lenapu 发表于 2007-11-24 09:56

呵呵,谢谢提醒。
我用了不同的模型。
页: [1]
查看完整版本: 如何对球体进行颜色分配