ericky 发表于 2009-11-13 11:22

求助——两个空间曲面数值叠加问题

clear all;clc
a=pi/4;x=-10:0.1:10;
=meshgrid(x);
Z=sqrt(X.^2+Y.^2)*cot(a);
=meshgrid(1:0.1:5,-4:0.1:0);
Z1=10-0.1*sqrt((X1-3).^2+(Y1+2).^2)+sqrt(X1.^2+Y1.^2)*cot(a);
k1=find(x==1);k2=find(x==5);
k3=find(x==-4);k4=find(x==0);
Z(k1:k2,k3:k4)=Z1;
surf(X,Y,Z)

想要把两个空间曲面数值叠加,第一个圆锥曲面z可以得到,没有问题,叠加第二个曲面z1时,应该只叠加一个圆形区域,但却出来的是矩形,请大家帮我看看,如何能得到一个圆形的叠加区域,谢谢

ChaChing 发表于 2009-11-13 19:09

不懂! X1/Y1都是41*41, 为何是圆形区域, 不是矩形?

ericky 发表于 2009-11-13 22:14

回复 沙发 ChaChing 的帖子

我要得到叠加范围为圆形区域,但结果却是矩形,我现在想要得到圆形应该怎么办?程序怎么改?老兄,懂了么?谢谢

ChaChing 发表于 2009-11-13 23:09

回复 板凳 ericky 的帖子

LZ是要将1F突出那部分, 画成类似圆柱突出?
若是, 试试将Z1在圆外的元素设为nan

还有建议看下
提问的智慧!!!!(发帖前请认真阅读)
http://forum.vibunion.com/forum/viewthread.php?tid=21991

lilongduzhi 发表于 2009-11-17 09:01

这样对不对?

【注意我的网格密度缩小至 0.25 了,这样看的清楚些,最重要的是使两个曲面的圆形区域的网格数相同】
clear all; clc
a=pi/4; x=-10:.25:10; =meshgrid(x);
Z=sqrt(X.^2+Y.^2)*cot(a);

=meshgrid(1:.25:5,-4:.25:0);
Z1=10-0.1*sqrt((X1-3).^2+(Y1+2).^2)+sqrt(X1.^2+Y1.^2)*cot(a);

O = ;
P= find(( X(:)-O(1)).^2+( Y(:)-O(2)).^2<=4);
P1 = find((X1(:)-O(1)).^2+(Y1(:)-O(2)).^2<=4);
Z(P)=Z(P)+Z1(P1); figure; surf(X,Y,Z)

[ 本帖最后由 ChaChing 于 2009-11-20 18:18 编辑 ]

ericky 发表于 2009-11-20 16:40

原帖由 lilongduzhi 于 2009-11-17 09:01 发表 http://www.chinavib.com/forum/images/common/back.gif
【注意我的网格密度缩小至 0.25 了,这样看的清楚些,最重要的是使两个曲面的圆形区域的网格数相同】
clear all;
clc
a=pi/4;
x=-10:.25:10;
=meshgrid(x);
Z=sqrt(X.^2+Y.^2)*cot(a);

=meshgr ...

谢谢,我给你发消息了
页: [1]
查看完整版本: 求助——两个空间曲面数值叠加问题