⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 v3d.m

📁 matlab 三维显示。所有代码都有。可以显示三维网格。
💻 M
字号:
function varargout = v3d(varargin)
% V3D starten
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

if (nargin == 4 | nargin == 5 | nargin==0)
    
    % wenn keine Parameter per Kommandozeile dann neues leeres Fenster erstellen
    if nargin==0 
        V3D_FIGUREID=figure('visible','off','name',fignamer('Untitled'));
    else 
        % Ansonsten wurden x,y,z und v 黚ergeben
        x=varargin{1};
        y=varargin{2};
        z=varargin{3};
        v=varargin{4};
                
         % Test ob v dreidimensional ist
        if (length(size(v))~=3)
            error('v nicht dreidimensional!');
        end
        
        % Test ob x,y und z Zeilenvektoren -> ansonsten drehen
        if size(x,2)==1 x=rot90(x); end
        if size(y,2)==1 y=rot90(y); end
        if size(z,2)==1 z=rot90(z); end
        
        % x,y und z sortieren
        x=sort(x);
        y=sort(y);
        z=sort(z);
        
        % Test ob Dimensionen von x,y und z mit v 黚ereinstimmen
        % Dimension v: (y)*(x)*(z) bzw. (y-1)*(x-1)*(z-1)
        % Achtung: x und y sind innerhalb v vertauscht!!! 
        if (size(v,1)~=size(y,2) | size(v,2)~=size(x,2) | size(v,3)~=size(z,2))
            % Test ob Blockkoordinaten
            if (size(v,1)==size(y,2)-1 | size(v,2)==size(x,2)-1 | size(v,3)==size(z,2)-1)
                [x,y,z,v]=v3d_import_block(x,y,z,v);
            else
                error('Dimensionen von v stimmen nicht mit x,y oder z 黚erein!');
            end        
        end
       
        % Test ob 5 Argumenten        
        if nargin==5
            % 5. Parameter ist option
            option=varargin{5};
                    
            % Test ob option ein Handle
            if (ishandle(option) & option~=0) 
                % Test ob V3D_Fenster
                if (findobj(option,'Tag','V3D:FIGURE'))
                    % in Vordergrund holen und erstmal hiden
                    V3D_FIGUREID=figure(option);
                    set(V3D_FIGUREID,'visible','off');
                    set(V3D_FIGUREID,'name','fignamer(''Untitled'')');
                end
            else
                % Ansonsten neues Fenster anlegen
                V3D_FIGUREID=figure('visible','off','name',fignamer('Untitled'));
            end
            varargout{1}=V3D_FIGUREID;
        else % ansonsten 4
            V3D_FIGUREID=figure('visible','off','name',fignamer('Untitled'));
        end        
    end
    
    % Menubar ausschalten
    set(V3D_FIGUREID,'menubar','none');
    % Keine Nummer im Titel
    set(V3D_FIGUREID,'numbertitle','off');
    % Tag setzen
    set(V3D_FIGUREID,'Tag','V3D:FIGURE');
    % Render auf OpenGL setzen
    set(V3D_FIGUREID,'render','opengl','renderermode','manual','doublebuffer','on');
    
    % wenn Aufruf per Kommandozeile, dann R點kgabe der Objektnummer des V3D-Fensters
    if nargin>0
        varargout{1}=V3D_FIGUREID;
    end

    % FigureToolbar aktivieren
    set(gcf,'toolbar','figure')
    % Handles zu FigureToolbar raussuchen
    tb=findobj(allchild(gcf),'type','uitoolbar','Tag','FigureToolBar');
    tbopen=findobj(allchild(tb),'type','uipushtool','TooltipString','Open File');
    tbnew=findobj(allchild(tb),'type','uipushtool','TooltipString','New Figure');
    % Callbackfunktionen f黵 New und Open 鋘dern
    set(tbopen,'ClickedCallback','v3d(''v3d_menu_open'')');
    set(tbnew,'ClickedCallback','v3d');
  
    % Men黶truktur generieren
    % Datei
    menuid = uimenu('Label','&Datei');
    % Untermen黶 generieren
    uimenu(menuid,'Label','&Neu...','Accelerator','N','Callback','v3d');
    uimenu(menuid,'Label','

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -