📄 v3d.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 + -