point_n = 31; x1 = 0; x2 = 1; y1 = 0; y2 = 1; x = linspace(x1, x2, point_n); y = linspace(y1, y2, point_n); zy1 = sin(10*x).*exp(-2*x); % when y = y1 zy2 = cos(2*x); % when y = y2 z11 = zy1(1); z21 = zy1(point_n); z12 = zy2(1); z22 = zy2(point_n); zx1 = sin(4*2*pi*y)/4+(z12-z11)*y+z11; % when x = x1 zx2 = -y.*(1-y)*4+(z22-z21)*y+z21; % when x = x1 [xx, yy] = meshgrid(x, y); p1 = (xx-x1)/(x2-x1); p2 = 1-p1; q1 = (yy-y1)/(y2-y1); q2 = 1-q1; zzy = (ones(point_n,1)*zy1).*q2 + (ones(point_n,1)*zy2).*q1; zzx = (zx1'*ones(1, point_n)).*p2 + (zx2'*ones(1, point_n)).*p1; figure; %subplot(2,2,1); h = mesh(xx, yy, zzy); set(h, 'facecolor', 'none'); line(x, y1*ones(size(x)), zy1, 'linewidth', 3, 'color', 'y'); line(x, y2*ones(size(x)), zy2, 'linewidth', 3, 'color', 'y'); xlabel('X'); ylabel('Y'); zlabel('Z'); set(gca, 'box', 'on'); frot3d on figure; %subplot(2,2,2); h = mesh(xx, yy, zzx); set(h, 'facecolor', 'none'); line(x1*ones(size(y)), y, zx1, 'linewidth', 3, 'color', 'c'); line(x2*ones(size(y)), y, zx2, 'linewidth', 3, 'color', 'c'); xlabel('X'); ylabel('Y'); zlabel('Z'); set(gca, 'box', 'on'); frot3d on figure; %subplot(2,2,3); h = mesh(xx, yy, zzx+zzy); set(h, 'facecolor', 'none'); line(x, y1*ones(size(x)), zy1, 'linewidth', 3, 'color', 'y'); line(x, y2*ones(size(x)), zy2, 'linewidth', 3, 'color', 'y'); line(x1*ones(size(y)), y, zx1, 'linewidth', 3, 'color', 'c'); line(x2*ones(size(y)), y, zx2, 'linewidth', 3, 'color', 'c'); xlabel('X'); ylabel('Y'); zlabel('Z'); set(gca, 'box', 'on'); frot3d on figure; %subplot(2,2,4); p1 = (xx-x1)/(x2-x1); p2 = 1-p1; q1 = (yy-y1)/(y2-y1); q2 = 1-q1; zz = z11*(p2.*q2) + z12*(p2.*q1) + z21*(p1.*q2) + z22*(p1.*q1); mesh(xx, yy, zz); line(x1, y1, z11, 'linestyle', '.', 'markersize', 25); line(x1, y2, z12, 'linestyle', '.', 'markersize', 25); line(x2, y1, z21, 'linestyle', '.', 'markersize', 25); line(x2, y2, z22, 'linestyle', '.', 'markersize', 25); xlabel('X'); ylabel('Y'); zlabel('Z'); set(gca, 'box', 'on'); frot3d on figure; %subplot(2,2,3); h = mesh(xx, yy, zzx+zzy-zz); set(h, 'facecolor', 'none'); line(x, y1*ones(size(x)), zy1, 'linewidth', 3, 'color', 'y'); line(x, y2*ones(size(x)), zy2, 'linewidth', 3, 'color', 'y'); line(x1*ones(size(y)), y, zx1, 'linewidth', 3, 'color', 'c'); line(x2*ones(size(y)), y, zx2, 'linewidth', 3, 'color', 'c'); xlabel('X'); ylabel('Y'); zlabel('Z'); set(gca, 'box', 'on'); frot3d on