表示山洞表面的方程
Equation to represent mountain-with-hollow-like surface
我想使用函数,其中 x 和 y 是形成圆的坐标,z(x, y) 从边缘的 0 增长到 R/2 的最大值,然后回到中心的 0 而没有急剧变化.我坚持
t = -pi:pi/180:pi;
R = 5;
x = R*cos(t);
y = R*sin(t);
for i = 1:361
for j = 1:361
z(i,j) = exp( sqrt((x(i)).^2 + (y(j)).^2));
end
end
[u, v] = meshgrid(x, y);
mesh(u, v, z), grid on;
我应该怎么实现z把这个drop加到中间呢?任何建议表示赞赏!
也许减去两个具有不同标准偏差的 2D 高斯分布?
% the area
x = linspace(-5,5,1E2);
y = linspace(-5,5,1E2);
sig1=1;
sig2=2;
%2D gaussian
efac = 1/(2*sig1);
X = exp(-efac*x.^2);
Y = exp(-efac*y.^2)';
z1 = Y*X;
z1=z1./max(z1(:));
%2D gaussian
efac = 1/(2*sig2);
X = exp(-efac*x.^2);
Y = exp(-efac*y.^2)';
z2 = Y*X;
z2=z2./max(z2(:));
[u, v] = meshgrid(x, y);
mesh(u, v, z2-z1), grid on;
在 R 之外具有零并且更符合您自己的代码的替代方案:
x = linspace(-2*pi,2*pi,1E2);
y = linspace(-2*pi,2*pi,1E2);
[u, v] = meshgrid(x, y);
r = sqrt(u.^2+v.^2);
z = sin(r);
z(r>pi)=0;
mesh(u, v, z), grid on;
或者让它底部不那么尖锐:
z = sin(r).^2;
我想使用函数,其中 x 和 y 是形成圆的坐标,z(x, y) 从边缘的 0 增长到 R/2 的最大值,然后回到中心的 0 而没有急剧变化.我坚持
t = -pi:pi/180:pi;
R = 5;
x = R*cos(t);
y = R*sin(t);
for i = 1:361
for j = 1:361
z(i,j) = exp( sqrt((x(i)).^2 + (y(j)).^2));
end
end
[u, v] = meshgrid(x, y);
mesh(u, v, z), grid on;
我应该怎么实现z把这个drop加到中间呢?任何建议表示赞赏!
也许减去两个具有不同标准偏差的 2D 高斯分布?
% the area
x = linspace(-5,5,1E2);
y = linspace(-5,5,1E2);
sig1=1;
sig2=2;
%2D gaussian
efac = 1/(2*sig1);
X = exp(-efac*x.^2);
Y = exp(-efac*y.^2)';
z1 = Y*X;
z1=z1./max(z1(:));
%2D gaussian
efac = 1/(2*sig2);
X = exp(-efac*x.^2);
Y = exp(-efac*y.^2)';
z2 = Y*X;
z2=z2./max(z2(:));
[u, v] = meshgrid(x, y);
mesh(u, v, z2-z1), grid on;
在 R 之外具有零并且更符合您自己的代码的替代方案:
x = linspace(-2*pi,2*pi,1E2);
y = linspace(-2*pi,2*pi,1E2);
[u, v] = meshgrid(x, y);
r = sqrt(u.^2+v.^2);
z = sin(r);
z(r>pi)=0;
mesh(u, v, z), grid on;
或者让它底部不那么尖锐:
z = sin(r).^2;