24小时热门版块排行榜    

CyRhmU.jpeg
查看: 657  |  回复: 6
当前主题已经存档。

Rings

银虫 (小有名气)

[交流] 【求助】函数图像绘制【已完成】

请教各个 怎么会出如下函数的图像,函数如附件:

[ Last edited by nono2009 on 2009-9-23 at 22:21 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mininurse

金虫 (正式写手)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
kuhailangyu(金币+1,VIP+0):谢谢参与 6-30 16:06
给定x一系列的值,y一些列的值,计算出z,然后用surf来画吧
2楼2009-06-30 09:38:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Rings

银虫 (小有名气)

Your answer is so sample....
3楼2009-06-30 10:07:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hitzhang

木虫 (正式写手)

★ ★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
sunxiao(金币+3,VIP+0):很好很强大,谢谢zhang专家 7-1 23:12
引用回帖:
Originally posted by Rings at 2009-6-29 21:32:
请教各个 怎么会出如下函数的图像,函数如附件:

>> f='-z^2+3*x^2+y^2-8*x*y-6';
>> ezimplot3(f,[-20 20 -20 20 -20 20])
4楼2009-06-30 12:35:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hitzhang

木虫 (正式写手)

★ ★ ★
kuhailangyu(金币+3,VIP+0):很好,很强大,很是感谢! 6-30 16:07
function h = ezimplot3(fun,domain,n,color)
% EZIMPLOT3    Easy to use 3D implicit plotter.
%   EZIMPLOT3(FUN) plots the inline function FUN(X,Y,Z) = 0 over the
%   default domain -2*PI < X < 2*PI, -2*PI < Y < 2*PI, -2*PI < Z < 2*PI.
%
%   EZIMPLOT3(FUN,DOMAIN)plots FUN over the specified DOMAIN instead of the
%   default domain. DOMAIN can be the vector [XMIN,XMAX,YMIN,YMAX,ZMIN,ZMAX]
%   or the vector [A,B] (to plot over A < X < B, A < Y < B, A < Z < B).
%
%   EZIMPLOT3(...,N) plots FUN over the default domain using an N-by-N grid.
%   The default value for N is 60.
%
% Example
% Plot x^3+exp(y)-cosh(z)=4
%
% via a string: f='x^3+exp(y)-cosh(z)-4'
% ezimplot3(f)
%
% via a vectorized function handle: f = @(x,y,z) x.^3+exp(y)-cosh(z)-4
% ezimplot3(f)
%
% Note: this function do not use the ezgraph3 standard, like ezsurf, ezmesh
% ,etc, does. Because of that, ezimplot3 only tries to imitate that
% interface. A future work must be to modify the ezgraph3 to include a
% routine for implicit surfaces based on this file
%
%   Inspired by works of:   A.Jutan     UWO 02-02-98 ajutan@julian.uwo.ca
%   Made by:                G.Morales   UC  03-20-09 gmorales@uc.edu.ve
%
if nargin == 1
    domain = [-2*pi, 2*pi];             % default domain: -2*pi < xi < 2*pi
    n = 60;                             % default grid size
elseif nargin == 2
    n = 60;                             % just default grid
end
if  size(domain,2) == 2
    domain = repmat(domain,1,3);        %domain repeated in all variables
end
xm = linspace(domain(1), domain(2), n); % generating the volume data
ym = linspace(domain(3), domain(4), n);
zm = linspace(domain(5), domain(6), n);
[x,y,z] = meshgrid(xm, ym, zm);

if ischar(fun)
    fun = inline(vectorize(fun)); % making sure string "fun" is vectorized
    fvalues = feval(fun,x,y,z);         % evaluating "fun" in domain
elseif isa(fun,'function_handle')
    fvalues = fun(x,y,z);               % evaluating "fun" in domain
    fun = char(fun); fun = fun(9:end);  % pre-formatting of graph title
end
h = patch(isosurface(x,y,z, fvalues, 0)); %"patch" handles the structure
                                          %sent by "isosurface"
isonormals(x,y,z,fvalues,h) %Recalculating the isosurface normals based on
                            %the volume data
set(h,'FaceColor','red','EdgeColor','none');
xlabel('x');ylabel('y');zlabel('z');% naming the axis
alpha(0.8) % adjusting for some transparency
grid on
view(3)
axis equal
camlight
lighting gouraud
title([strrep(char(fun),'.','') ' = 0']); % graph title without "."
5楼2009-06-30 12:36:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mininurse

金虫 (正式写手)


小木虫(金币+0.5):给个红包,谢谢回帖交流
楼上老兄太强了,不服不行
6楼2009-06-30 14:29:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Rings

银虫 (小有名气)

谢谢,楼上的兄弟
7楼2009-07-01 09:50:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 Rings 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见