版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
arrow
function[h,yy,zz]=arrow(varargin)
%ARROWDrawalinewithanarrowhead.
%
%ARROW(Start,Stop)drawsalinewithanarrowfromStarttoStop(points
%shouldbevectorsoflength2or3,ormatriceswith2or3
%columns),andreturnsthegraphicshandleofthearrow(s).
%
%ARROWusesthemouse(click-drag)tocreateanarrow.
%
%ARROWDEMO&ARROWDEMO2show3-D&2-DdemosofthecapabilitiesofARROW.
%
%ARROWmaybecalledwithanormalargumentlistoraproperty-basedlist.
%ARROW(Start,Stop,Length,BaseAngle,TipAngle,Width,Page,CrossDir)is
%thefullnormalargumentlist,whereallbuttheStartandStop
%pointsareoptional.Ifyouneedtospecifyalaterargument(e.g.,
%Page)butwantdefaultvaluesofearlierones(e.g.,TipAngle),
%passanemptymatrixfortheearlierones(e.g.,TipAngle=[]).
%
%ARROWPropertyr,PropVall,JProperty25,PropVal2,...)createsarrowswiththe
%givenproperties,usingdefaultvaluesforanyunspecifiedorgivenas
%'default'orNaN.Somepropertiesusedforlineandpatchobjectsare
%usedinamodifiedfashion,othersarepasseddirectlytoLINE,PATCH,
%orSET.Foradetailedpropertiesexplanation,callARROWPROPERTIES.
%
%StartThestartingpoints.B
%StopTheendpoints./I\.
%LengthLengthofthearrowheadinpixels/III\1
%BaseAngleBaseangleindegrees(ADE).//IIl\\L|
%TipAngleTipangleindegrees(ABC).///IIl\\\e|
%WidthWidthofthebaseinpixels.////11l\\\\nl
%PageUsehardcopyproportions./////IDl\\\\\gl
%CrossDirVectortoarrowheadplane.////II1\\\\t|
%NormalDirVectoroutofarrowheadplane.///II1\\\h|
%EndsWhichendhasanarrowhead.//<>1\\1
%ObjectHandlesVectorofhandlestoupdate./base1\v
%Eangle||<>c
%ARROW(H,JPropT,PropVall,...),whereHisaII|tipangle
%vectorofhandlestopreviously-createdarrowsII1
%and/or1ineobjects,willupdatethepreviously1
%createdarrowsaccordingtothecurrentview—>|AI<-width
%andanyspecifiedproperties,andwillconvert
%two-pointlineobjectstocorrespondingarrows.ARROW(II)willupdate
%thearrowsifthecurrentviewhaschanged.Root,figure,oraxes
%handlesincludedinIIarereplacedbyalldescendantArrowobjects.
%
%Apropertylistcanfollowanyspecifiednormalargumentlist,e.g.,
%ARROW([123],[000],36,'BaseAngle',60)createsanarrowfrom(1,2,3)to
%theorigin,withanarrowheadoflength36pixelsand60-degreebaseangle.
%
%Thebasicargumentsorpropertiescangenerallybevectorizedtocreate
%multiplearrowswiththesamecall.Thisisdonebypassingaproperty
%withonerowperarrow,or,ifallarrowsaretohavethesameproperty
%value,justonerowmaybespecified.
%
%YoumaywanttoexecuteAXIS(AXIS)beforecallingARROWsoitdoesn'tchange
%theaxesonyou;ARROWdeterminesthesizesofarrowcomponentsBEFOREthe
%arrowisplotted,soifARROWchangesaxis1imits,arrowsmaybemalformed.
%
%ThisversionofARROWusesfeaturesofMATLAB5andisincompatiblewith
%earlierMATLABversions(ARROWforMATLAB4.2cisavailableseparately);
%someproblemswithperspectiveplotsstillexist.
%Copyright(c)1995-1997,ErikA.Johnson〈johnsone@〉,8/14/97
%Revisionhistory:
%8/14/97EAJAddedworkaroundforMATLAB5.1scalarlogicaltransposebug.
%7/21/97EAJFixedafewmiscbugs.
%7/14/97EAJMakearrow([],?Prop,,...)donothing(nooldhandles)
%6/23/97EAJMATLAB5compatibleversion,release.
%5/27/97EAJAddedLineArrowsbackin.Correctedafewbugs.
%5/26/97EAJChangedmissingStart/Stoptomouse-selectedarrows.
%5/19/97EAJMATLAB5compatibleversion,beta.
%4/13/97EAJMATLAB5compatibleversion,alpha.
%1/31/97EAJFixedbugwithmultiplearrowsandunspecifiedZcoords.
%12/05/96EAJFixedonemorebugwithlogplotsandNormalDirspecified
%10/24/96EAJFixedbugwithlogplotsandNormaIDirspecified
%11/13/95EAJCorrectedhand!ingfor'reverse'axisdirections
%10/06/95EAJCorrectedoccasionalconflictwithSUBPLOT
%4/24/95EAJAmajorrewrite.
%Fall94EAJOriginalcode.
%Thingstobedone:
%-segmentparsing,computing,andplottingintoseparatesubfunctions
%-changecomputingfromXformtoCameraparadigms
%+thiswillhelpespeciallywith3-Dperspectiveplots
%+iftheWarpToFillsectionworksright,removewarningcode
%+whenperpsectiveworksproperly,removeperspectivewarningcode
%-addcellpropertyvaluesandstructpropertyname/values(likeget/set)
%-getridofNaNasthe"default"datalabel
%+perhapschangeuserdatatoastructanddon,tinclude(orleave
%empty)thevaluesspecifiedasdefault;oruseacellcontaining
%anemptymatrixforadefaultvalue
%-addfunctionalityofGETtoretrievecurrentvaluesofARROWproperties
%ManythankstoKeithRogers〈kerog@>forhismanyexcellent
%suggestionsandbetatesting.CheckouthissharewarepackageMATDRAW.
%HehaspermissiontodistributeARROWwithMATDRAW.
%globalvariableinitialization
globalARROW_PERSP_WARNARROW_STRETCII_WARNARROW_AXLIMITS
ifisempty(ARROW_PERSP_WARN),ARROW_PERSP_WARN=1;end;
ifisempty(ARROW_STRETCH_WARN),ARROW_STRETCH_WARN=1;end;
%Handlecallbacks
if(nargin>0&isstr(varargin{l})&strcmp(lower(varargin{l}),*callback,)),
arrow_callback(varargin{2:end});return;
end;
%Arewedoingthedemo?
c=sprintf('\n);
if(nargin==l&isstr(varargin{1})),
argl=lower(varargin{1});
ifstrncmp(argl,Jprop',4),arrow_props;
elseifstrncmp(argl,Jdemo',4)
elfreset
demo_info=arrow_demo;
if"strncmp(argl,'demo2,,5),
hh=arrow_demo3(demo_info);
else,
hh=arrow_demo2(demo_info);
end;
if(nargout>=l),h=hh;end;
elseifstrncmp(argl,,fixlimits',3),
arrow_fixlimits(ARROW_AXLIMITS);
ARROW_AXLIMITS=[];
elseifstrncmp(argl,'help',4),
disp(he1p(mfi1ename));
else,
error([upper(mfilename)'gotanunknownsingle-argumentstring
deblank(argl)
end;
return;
end;
%Check#ofarguments
if(nargout>3),error([upper(mfilename)'producesatmost3outputarguments.,]);
end;
%findfirstpropertynumber
firstprop=nargin+1;
fork=l:length(varargin),if'isnumeric(varargin{k}),firstprop=k;break;end;end;
lastnumeric=firstprop-1;
%checkpropertylist
if(firstprop<=nargin),
fork=firstprop:2:nargin,
curarg=varargin{k};
if^isstr(curarg)|sum(size(curarg)>1)>1,
error([upper(mfi1ename)'requiresthatapropertynamebeasingle
string.J]);
end;
end;
if(rem(nargin-firstprop,2)?=1),
error([upper(mfi1ename)'requiresthattheproperty'''
varargin{nargin}'''bepairedwithapropertyvalue.*]);
end;
end;
%defaultoutput
if(nargout>0),'h二口;end;
if(nargout>l),yy=[];end;
if(nargout>2),zz=[];end;
%setvaluestoemptymatrices
start=[]
stop=[]
len=[]
baseangle=[]
tipangle=[]
wid=[]
page=[]
crossdir=[]
ends=[]
ax=[]
oldh=[]
ispatch[];
defstart=[NaNNaNNaN]
defstop=[NaNNaNNaN]
deflen=16;
defbaseangle=90;
deftipangle=16;
defwid=o;
defpage=o;
defcrossdir=[NaNNaNNaN]
defends=1;
defoldh=[];
defispatch=1;
%The'Tag'we'11putonourarrows
ArrowTag='Arrow";
%checkforoldstylearguments
if(firstprop==2),
%assumearglisasetofhandles
oldh=varargin{1}(:);
ifisempty(oldh),return;end;
elseif(firstprop>9),
error([upper(mfilename)'takesatmost8non-propertyarguments.5]);
elseif(firstprop>2),
s
str2mat('start','stop','len','baseangle','tipangle','wid',‘page','crossdir');
fork=l:firstprop-l,eval([deblank(s(k,:))'=varargin{k};']);end;
end;
%parsepropertypairs
extraprops={};
fork=firstprop:2:nargin,
prop二varargin{k};
val=varargin{k+1};
,
prop二[lower(prop(:))’
ifstrncmp(prop,,start,,5),start=val;
elseifstrncmp(prop,,stop?,4),stop=val;
elseifstrncmp(prop,*len',3),len=val(:);
?
elseifstrncmp(prop,base',4),baseangle二val(:);
elseifstrncmp(prop,*tip',3),tipangle=val(:);
,
elseifstrncmp(prop,wid',3),wid二val(:);
elseifstrncmp(prop,*page',4),page=val;
5
elseifstrncmp(prop,cross',5),crossdir二val;
elseifstrncmp(prop,Jnorm,4),if(isstr(val)),crossdir=val;else,
crossdir=val*sqrt(-1);end;
elseifstrncmp(prop,'end',3),ends=val;
elseifstrncmp(prop,5object',6),oldh=val(:)
elseifstrncmp(prop,5handle',6),oldh=val(:)
elseifstrncmp(prop,'type',4),ispatch二val;
elseifstrncmp(prop,5userd,,5),%ignoreit
else,
%makesureitisavalidpatchorlineproperty
eval('get(0,[''DefaultPatch,'varargin{k}]);err=0;','err=l;');
errstr=lasterr;
if(err),eval('get(0,[''DefaultLine,'varargin{k}]);err=0;','err=l;');
end;
if(err),
errstr(1:max(find(errstr==setstr(13)|errstr==setstr(10))))='';
error([upper(mfi1ename)'got'errstr]);
end;
extraprops={extraprops{:},varargin{k},val);
end;
end;
%Checkifwegot'default'values
start=arrowdefcheck(start,defstart,'Start*);
stop=arrow__defcheck(stop,defstop,'Stop');
len=arrowdefcheck(len,deflenLength');
baseangle=arrow__defcheck(baseangle,defbaseangle,,BaseAngle,);
tipangle=arrowdefcheck(tipangle,deftipangle,'TipAngle');
wid=arrow,_defcheck(wid,defwidWidth');
crossdir=arrowdefcheck(crossdir,defcrossdirCrossDir');
page二arrow__defcheck(page,defpage,'Page');
ends=arrowdefcheck(ends,defends;
,
oldh二arrow__defcheck(oldh,口,'ObjectHandles);
ispatch=arrowdefcheck(ispatch,defispatch;
%checktransposeonarguments
[m,n]=size(start);ifany(m==:[23])&(n==l|n>3),start=start?
end;
[m,n]:size(stop);ifany(m==[23])&(n==ln>3),stop=stop'
end;
[m,n]=size(crossdir);ifany(m==[23])&(n==l|n>3),crossdir=crossdir,
end;
%convertstringstonumbers
if^isempty(ends)&isstr(ends),
endsorig=ends;
[m,n]=size(ends);
col=lower([ends(:,1:min(3,n))ones(m,max(0,3-n))']);
ends=NaN*ones(m,1);
oo=ones(1,m);
ii=find(all(coT二二['non']'*oo)');if?isempty(ii),
ends(ii)=ones(length(ii),1)*0;end;
ii=find(all(col'=二['sto']'*oo)');if^isempty(ii),
ends(ii)=ones(length(ii),1)*1;end;
ii=find(all(col'二二['sta'['*oo)');if"isempty(ii),
ends(ii)=ones(length(ii),1)*2;end;
ii=find(all(col'二二['bot'['*oo)');if?isempty(ii),
ends(ii)=ones(length(ii),1)*3;end;
ifany(isnan(ends)),
ii二min(find(isnan(ends)));
error([upper(mfilename)'doesnotrecognize'''deblank(endsorig(ii,:))
'''asavalid''Ends''value.J]);
end;
else,
ends=ends(:);
end;
if^isempty(ispatch)&isstr(ispatch),
col=lower(ispatch(:,1));
patchchar='p';linechar='1';defchar=’';
mask=col?=patchchar&col'=linechar&coP=defchar;
ifany(mask),
error([upper(mfilename)'doesnotrecognize
deblank(ispatch(min(find(mask)),:))''asavalid''Type''value.']);
end;
ispatch二(col二二patchchar)*1+(col==linechar)*0+(col~defchar)*defispatch;
else,
ispatch=ispatch(:);
end;
oldh=oldh(:);
%checkobjecthandles
if"all(ishandle(oldh)),error([upper(mfi1ename)'gotinvalidobjecthandles.*]);
end;
%expandroot,figure,andaxeshandles
if?isempty(oldh),
ohtype=get(oldh,'Type');
mask二strcmp(ohtype,'root')|strcmp(ohtype,*figure,)|strcmp(ohtype,'axes');
ifany(mask),
oldh=num2cell(oldh);
forii=find(mask),,
oldh(ii)={findobj(oldh{ii),JTag*,ArrowTag));
end;
oldh=cat(1,oldh{:});
ifisempty(oldh),return;end;%noarrowstomodify,sojustleave
end;
end;
%largestargumentlength
[mstart,junk]=size(start);[mstop,junk]=size(stop);
[mcrossdir,junk]=size(crossdir);
argsizes=[length(oldh)mstartmstop
length(len)length(baseangle)length(tipangle)
length(wid)length(page)incrossdirlength(ends)];
args=['length(Objectllandle);
J#rows(Start);...
'#rows(Stop)';..?
Jlength(Length);...
'length(BaseAngle);???
'length(TipAngle)’;
Jlength(Width)?;...
,length(Page);...
'ttrows(CrossDir);...
'#rows(Ends)'];
if(any(imag(crossdir(:))?=0)),
args(9,:)=>#rows(NormalDir);
end;
ifisempty(oldh),
narrows=max(argsizes);
else,
narrows=length(oldh);
end;
if(narrows<=0),narrows」;end;
%Checksizeofarguments
ii=find((argsizes^O)&(argsizes^=1)&(argsizes"=narrows));
if"isempty(ii),
s=argsCii*,;
while((size(s,2)>l)&((abs(s(:,size(s,2)))=0)|(abs(s(:,size(s,2)))==abs(,
‘)))),
s二s(:,l:size(s,2)-1);
end;
s二[ones(1ength(ii),1)*[upper(mfilename)'requiresthat']s...
ones(length(ii),1)*['equalthe#ofarrows('num2str(narrows)c]];
S二s';
S=s(:)';
s=s(l:length(s)-l);
error(setstr(s));
end;
%checkelementlengthinStart,Stop,andCrossDir
if^isempty(start),
[m,n]=size(start);
if(n==2),
start=[startNaN*ones(m,1)];
elseif(rT=3),
error([upper(mfi1ename)'requires2-or3-elementStartpoints.']);
end;
end;
if?isempty(stop),
[m,n]=size(stop);
if(n==2),
stop=[stopNaN*ones(m,1)];
elseif(n'=3),
error([upper(mfilename)'requires2-or3-elementStoppoints.*]);
end;
end;
if^isempty(crossdir),
[m,n]=size(crossdir);
if(n<3),
crossdir=[crossdirNaN*ones(m,3-n)];
elseif(rT=3),
if(all(imag(crossdir(:))==0)),
error([upper(mfi1ename)'requires2-or3-elementCrossDir
vectors.*]);
else,
error([upper(mfi1ename)'requires2-or3-elementNormalDir
vectors.J]);
end;
end;
end;
%fillemptyarguments
ifisempty(start),start=[InfInfInf];end;
ifisempty(stop),stop二[InfInfInf];end;
ifisempty(len),len=Inf;end;
ifisempty(baseangle),baseangle二Inf;end;
ifisempty(tipangle),tipangle=Inf;end;
ifisempty(wid),wid=Inf;end;
ifisempty(page),page=Inf;end;
ifisempty(crossdir),crossdir二[InfInfInf];end;
ifisempty(ends),ends=Inf;end;
ifisempty(ispatch),ispatch二Inf;end;
%expandsingle-columnarguments
o=ones(narrows,1);
if(size(start1)==1),start=o*start;end;
if(size(stop1)==1),stop=o*stop;end;
if(length(len)==1),len=o*len;end;
if(length(baseangle)==1),baseangle二o*baseangle;end;
if(length(tipangle)==D,tipangle=o*tipangle;end;
if(length(wid)==D,wid=o*wid;end;
if(length(page)==1),page=o*page;end;
if(size(crossdir,1)==1),crossdir=o*crossdir;end;
if(length(ends)==1),ends二o*ends;end;
if(length(ispatch)==D,ispatch=o*ispatch;end;
ax二o*gca;
%ifwe'vegothandles,getthedefaultsfromthehandles
if"isempty(oldh),
fork=lmarrows,
oh=oldh(k);
ud=get(oh,'UserData,);
ax(k)=get(oh,'Parent');
ohtype=get(oh,?Type');
ifstrcmp(get(oh,*Tag*),ArrowTag),%ifit'sanarrowalready
ifisinf(ispatch(k)),ispatch(k)=strcmp(ohtype,*patch');end;
%arrowUserDataformat:[start,stop'lenbasetipwidpagecrossdir,
ends]
startO=ud(l:3);
stopO=ud(4:6);
if(isinf(len(k))),len(k)=ud(7);end;
if(isinf(baseangle(k))),baseangle(k)=ud(8);end;
if(isinf(tipangle(k))),tipangle(k)=ud(9);end;
if(isinf(wid(k))),wid(k)=ud(10);end;
if(isinf(page(k))),page(k)=ud(ll);end;
if(isinf(crossdir(k,1))),crossdir(k,1)=ud(12);end;
if(isinf(crossdir(k,2))),crossdir(k,2)=ud(13);end;
if(isinf(crossdir(k,3))),crossdir(k,3)=ud(14);end;
if(isinf(ends(k))),ends(k)=ud(15);end;
elseifstrcmp(ohtype,Jline')strcmp(ohtype,*patch'),%it'sanon-arrow
lineorpatch
convLineToPatch=1;%settomakearrowpatcheswhenconvertingfrom
lines.
ifisinf(ispatch(k)),
ispatch(k)=convLineToPatch|strcmp(ohtype,,patch');end;
,
x=get(oh,'XData)x二x(?isnan(x(:)));ifisempty(x),x=NaN;end;
y=get(oh,'YData')y=yCisnan(y(:)));ifisempty(y),y=NaN;end;
z=get(oh,'ZData/)z二z(?isnan(z(:)));ifisempty(z),z=NaN;end;
startO=[x(l)y(1)z(1)];
stopO=[x(end)y(end)z(end)];
else,
error([upper(mfi1ename)cannotconvert'ohtype'objects.5]);
end;
ii=find(isinf(start(k,:)));if^isempty(ii),start(k,ii)=startO(ii);
end;
ii=find(isinf(stop(k,:)));if^isempty(ii),stop(k,ii)=stopO(ii);
end;
end;
end;
%convertInf'stoNaN's
start(isinf(start))=NaN;
stop(isinf(stop))=NaN;
len(isinf(len))二NaN;
baseangle(isinf(baseangle))=NaN;
tipangle(isinf(tipangle))二NaN;
wid(isinf(wid))=NaN;
page(isinf(page))二NaN;
crossdir(isinf(crossdir))=NaN;
ends(isinf(ends))=NaN;
ispatch(isinf(ispatch))=NaN;
%setuptheUserDatadata(heresonotcorruptedbyloglO,sandsuch)
ud=[startstoplenbaseangletipanglewidpagecrossdirends];
%SetPagedefaults
page=("isnan(page))&(page);
%Getaxeslimits,range,min;correctforaspectratioandlogscale
axm=zeros(3,narrows);
axr=zeros(3,narrows);
axrev=zeros(3,narrows);
ap=zeros(2,narrows);
xyzlog二zeros(3,narrows);
1immin=zeros(2,narrows);
limrange=zeros(2,narrows);
oldaxlims=zeros(narrows,7);
oneax=all(ax==ax(l));
if(oneax),
T=zeros(4,4);
invT=zeros(4,4);
else,
T=zeros(16,narrows);
invT=zeros(16,narrows);
end;
axnotdone=logical(ones(size(ax)));
while(any(axnotdone)),
ii=min(find(axnotdone));
curax=ax(ii);
curpage=page(ii);
%getaxeslimitsandaspectratio
axl=[get(curax,JXLim,);get(curax,'YLim,);get(curax,'ZLim,)];
oldaxlims(min(find(oldaxlims(:,1)=0)),:)=[curaxreshape(axT,1,6)];
%getaxessizeinpixels(points)
u=get(curax,*Units,);
axposoldunits=get(curax,JPosition,);
really_curpage=curpage&strcmp(u,'normalized');
if(really_curpage),
curfig=get(curax,'Parent');
pu=get(curfig,5PaperUnits,);
set(curfig,*PaperUnits,,*points,);
pp=get(curfig,5PaperPosition,);
set(curfig,,PaperUnits,,pu);
set(curax,'Units','pixels*);
curapscreen=get(curax,*Position');
set(curax,'Units','normalized');
curap=pp.*get(curax,*Position');
else,
set(curax,*Units','pixels*);
curapscreen=get(curax,'Position');
curap=curapscreen;
end;
set(curax,*Units',u);
set(curax,'Position',axposoldunits);
%handlenon-stretchedaxesposition
str_stretch={'DataAspectRatioMode,;...
JPlotBoxAspectRatioMode,;...
'CameraViewAngleMode,};
strcamera={JCameraPositionMode,;…
CameraTargetMode,
CameraViewAngleMode,
CameraUpVectorMode,
notstretched=strcmp(get(curax,str_stretch),,manuar);
manualcamera=strcmp(get(curax,str_camera),?manual');
if"arrowWarpToFill(notstretched,manualcamera,curax),
%giveawarningthatthishasnotbeenthoroughlytested
if0&ARROW_STRETCH_WARN,
ARROW_STRETCII_WARN=0;
strs={str_stretch{1:2},str_camera{:}};
strs二[char(ones(length(strs),l)*sprintf\n'))char(strs);
warning([upper(mfi1ename)'maynotyetworkquiteright'
ifanyofthefollowingare''manual'':'strs(:).']);
end;
%findthetruepixelsizeoftheactualaxes
texttmp=text(axl(l,[12211221]),
axl(2,[11221122]),
axl(3,[11112222]),'');
set(texttmp,'Units','points*);
textpos=get(texttmp,'Position');
delete(texttmp);
textpos=cat(1,textpos{1});
textpos=max(textpos(:,1:2))-min(textpos(:,1:2));
%adjusttheaxesposition
if(rea11y_curpage),
%adjusttoprintedsize
textpos=textpos*min(curap(3:4)./textpos);
curap=[curap(1:2)+(curap(3:4)-textpos)/2textpos];
else,
%adjustforpixelroundoff
textpos=textpos*min(curapscreen(3:4)./textpos);
curap=[curap(1:2)+(curap(3:4)-textpos)/2textpos];
end;
end;
ifARROW_PERSP_WARN&飛trcmp(get(curax,'Projection'),'orthographic'),
ARROW_PERSP_WARN=0;
warning([upper(mfilename)'doesnotyetworkrightfor3-Dperspective
projection.J]);
end;
%adjustlimitsforlogscaleonaxes
curxyzlog=[strcmp(get(curax,JXScale,),'log');
strcmp(get(curax,,YScale'),'log');
strcmp(get(curax,,ZScale*),'log')];
if(any(curxyzlog)),
ii=find([curxyzlog;curx5rzlog]);
if(any(axl(ii)<=0)),
error([upper(mfi1ename)'doesnotsupportnon-positivelimitson
log-scaledaxes.']);
else,
axl(ii)=loglO(axl(ii));
end;
end;
%correctfor'reverse'directiononaxes;
curreverse=[strcmp(get(curax,*XDir'),'reverse');
strcmp(get(curax,'YDir,),‘reverse1);
strcmp(get(curax,JZDir*)reverse')];
ii=find(curreverse);
if?isempty(ii),
axl(ii,[12])=-axl(ii,[21]);
end;
%computetherangeof2-Dvalues
curT=get(curax,*Xform');
lim=curT*[01010101;00110011;00001111;11111111];
lim=lim(l:2,:)./([I;l]*lim(4,:));
curlimmin=min(lim')';
curlimrange=max(lim')'-curlimmin;
curinvT=inv(curT);
if(?oneax),
curT=curT.';
curinvT=curinvT.';
curT=curT(:);
curinvT=curinvT(:);
end;
%c
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度兼職研發(fā)人員勞動合同規(guī)范文本3篇
- 2025版公墓建設項目墓區(qū)綠化帶植被種植與養(yǎng)護合同3篇
- 2024年知識產(chǎn)權許可合同:專利技術使用與授權
- 2024年物流配送技術服務合同
- 2025年度信用卡代還款業(yè)務利息減免與資金結算合同3篇
- 2024年跨國企業(yè)并購居間合同
- 2025版股權轉(zhuǎn)讓合同及股權收購協(xié)議2篇
- 2025年度二零二五版教育機構品牌推廣合同3篇
- 2025版酒店餐飲區(qū)裝修施工合同示范文本3篇
- 2025版智能裝備制造勞務服務擴大合同3篇
- ()電動力學期末復習
- 湖南省鄉(xiāng)鎮(zhèn)衛(wèi)生院街道社區(qū)衛(wèi)生服務中心地址醫(yī)療機構名單目錄
- 冠心病的中醫(yī)治療
- 福建省三明市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名明細及行政區(qū)劃代碼
- 2023年度虹口區(qū)第一學期期末六年級數(shù)學
- 《智慧農(nóng)業(yè)》的ppt完整版
- 水稻高產(chǎn)高效栽培管理新技術課件
- 水環(huán)境保護課程設計報告
- (高清版)建筑裝飾裝修職業(yè)技能標準JGJ_T 315-2016
- 天然氣水合物科普PPT
- 施工項目標前策劃管理辦法
評論
0/150
提交評論