Last change of this documentation page: 2022-06-02 of SolidGeometry 3.6
VMgetSubplot- returns the current active subplot

VMgetSubplot% VMgetSubplot - returns the current active subplot
% (by Tim Lueth, VLFL-Lib, 2017-MÄR-21 as class: USER INTERFACE)
%
% This fnctn returns for the VMplot figure, the number of the subplot, of
% the last VMginput position was taken (Status of: 2017-03-21)
%
% See also: VMginput, VMplot
%
% subpn=VMgetSubplot
% === OUTPUT RESULTS ======
% subpn: current subplot position; empty if figure is not valid
%

getCurrentPoint- this function returns the currentPoint but also the axis limits

getCurrentPoint% getCurrentPoint - this fnctn returns the currentPoint but also the axis limits
% (by Tim Lueth, VLFL-Lib, 2017-MÄR-21 as class: USER INTERFACE)
%
% Sometime after ginput or after get(gca,'CurrentPoint' ) the returned
% coordinates are unfortunately not inside of the active axis. This
% Matlab bug is related to changing programmatically the size of the
% window by a command and having at the time the windowchange allowed.
% This fnctn just help to detect the problem. So it is more a debug
% fnctn. (Status of: 2017-03-27)
%
% See also: view, get(gca, 'CurrentPoint', )
%
% [p,ax]=getCurrentPoint
% === OUTPUT RESULTS ======
% p: 2 point describing the view axis of the last click
% ax: axis limits for each point -1 to small + 1 to big 0=inside of view
%

VMginput(n,u)- returns a point position by clicking into VMplot

VMginput(n,u)% VMginput(n,u) - returns a point position by clicking into VMplot
% (by Tim Lueth, VLFL-Lib, 2017-MÄR-20 as class: USER INTERFACE)
%
% This fnctn is based on ginput, waitforbuttonpress,
% get(gca,'CurrentPoint').
% If the window is magnified, it has to be in the center of the screen
% (Status of: 2017-03-21)
%
% See also: VMplot, VMgetSubplot
%
% [PL,t]=VMginput([n,u])
% === INPUT PARAMETERS ===
% n: number of points
% u: update VMplot; default is true
% === OUTPUT RESULTS ======
% PL: position
% t: subplot
%

SGtitle(n,w)- draws the name of the calling fnct as figure title

SGtitle(n,w)% SGtitle(n,w) - draws the name of the calling fnct as figure title
% (by Tim Lueth, Video-Lib, 2017-MÄR-19 as class: AUXILIARY PROCEDURES)
%
% same as title(titleofcaller,'Interpreter','none');
% Since 2018b there is a conflict with a new fnctn sgtitle (Status of:
% 2019-06-30)
%
% Introduced first in SolidGeometry 3.6
%
% See also: titleofcaller, sgtitle, VLFLfigure, SGfigure, select3d,
% pixelofaxis, VLFLplotlight
%
% SGtitle([n,w])
% === INPUT PARAMETERS ===
% n: hierarchy of calling fnctns; default is 0;
% w: 'window' renames the window instead of a gca title
%
% EXAMPLE:
% SGfigure; SGtitle
% SGfigure; SGtitle(1)
% SGfigure; SGtitle(-1)
%
% See also: titleofcaller, sgtitle, VLFLfigure, SGfigure, select3d,
% pixelofaxis, VLFLplotlight
%
%
% Copyright 2017-2019 Tim C. Lueth

exp_2017_03_18a(A,comp)- EXPERIMENT to calculate bended surfaces

exp_2017_03_18a(A,comp)% exp_2017_03_18a(A,comp) - EXPERIMENT to calculate bended surfaces
% (by Tim Lueth, VLFL-Lib, 2017-MÄR-19 as class: EXPERIMENTS)
%
% By compressing a solid, the edges are compressed but the length of the
% original edges have to be constant. The bending curve is delivered by
% rofcircbend. This is done for each facet edge. In this example in
% addition also the resulting solid for each face is calculated and shown.
% IN THIS EXPERIMENT EACH FACET is handled separately. For complete
% solids it is necessary to handle edges instead of faces. Each edge will
% result in one ore more (grow) contours. (Status of: 2017-03-19)
%
% exp_2017_03_18a([A,comp])
% === INPUT PARAMETERS ===
% A: Solid Geometry
% comp: compression such as 0.95 or 0.9
%

rofcircbend(s,l)- returns bending radius and angle for a compressed line

rofcircbend(s,l)% rofcircbend(s,l) - returns bending radius and angle for a compressed line
% (by Tim Lueth, VLFL-Lib, 2017-MÄR-18 as class: ANALYTICAL GEOMETRY)
%
% Helpful parameter:
% Steel Slim=355; E=200000
% PA12 Slim=36; E=1240 (PA2200 called at EOS)
% The relation between a circle segment and the chord (segment crossing
% line) can be solved only by a numerical search using fzero.
% if s < l than the line is streched.
% if s = l than the radius would be inf
% if s > l there is a solution
% In reality there is a minimal radius for bending because of material
% stress
% (Status of: 2020-09-18)
%
% Introduced first in SolidGeometry 3.6
%
% See also: SGsnaprivet, lofbendinggirder, sofbendinggirder,
% bofbendinggirder, Fofbendinggirder
%
% [r,a,PL]=rofcircbend(s,l)
% === INPUT PARAMETERS ===
% s: original distance
% l: compressed distance
% === OUTPUT RESULTS ======
% r: bending radius
% a: bending angle
% PL: Point list describing the shape
%
% EXAMPLE:
% rofcircbend(30,10)
%
% See also: SGsnaprivet, lofbendinggirder, sofbendinggirder,
% bofbendinggirder, Fofbendinggirder
%
%
% Copyright 2017-2020 Tim C. Lueth

exp_2017_03_18- EXPERIMENT to solve transcendent functioon

exp_2017_03_18% exp_2017_03_18 - EXPERIMENT to solve transcendent functioon
% (by Tim Lueth, VLFL-Lib, 2017-MÄR-18 as class: EXPERIMENTS)
%
% l=2*r*sin(alpha) = 2*r*sin(b/(2*r)
% alpha=b/r
% (Status of: 2017-03-18)
%
% exp_2017_03_18
%

CVLofcontourc(C,rem)- converts the contourc format into the CVL format

CVLofcontourc(C,rem)% CVLofcontourc(C,rem) - converts the contourc format into the CVL format
% (by Tim Lueth, VLFL-Lib, 2017-MÄR-18 as class: CLOSED POLYGON LISTS)
%
% Matlab's contourc fnctn is a powerful fnctn to create contours from
% image bit maps similar to the marching cube fnctn in 3D. Nevertheless
% the resulting point list format is outdated. This fnctn converts the
% contourc format into the CVL format. The z values are the contourc
% intesity(z) values. (Status of: 2017-03-18)
%
% See also: CPLofcontourc, contourc, CPLofimage, SGofVMdelaunay,
% SGofVMmarchcube, CPLremstraight
%
% CVL=CVLofcontourc(C,[rem])
% === INPUT PARAMETERS ===
% C: result of the contourc fnctn
% rem: removes straight lines if true; default is false
% === OUTPUT RESULTS ======
% CVL: Closed polygon list [nx3] with the z values for the contour
%
% EXAMPLE:
% figure; axis off; text(0.5,0.5,'This is a Test', 'FontSize',36)
% I=getframe(gcf);
% CVLofcontourc(contourc(1/3*sum(flipud(I.cdata),3),4))
%

CPLcontourc(Inputparameter)- returns the CPL of matlab's contourc command

CPLcontourc(Inputparameter)% CPLcontourc(Inputparameter) - returns the CPL of matlab's contourc command
% (by Tim Lueth, VLFL-Lib, 2017-MÄR-18 as class: CLOSED POLYGON LISTS)
%
% This fnctn simply calls contourc and converts the output matrix into
% CPL format.
% For the properties of the contour matrix result read the help for
% ContourMatrix
% ATTENTION: The original ContourMatrix supports open and closed PL!
% ATTENTION: The original ContourMatrix has many points on a staight line!
% Automatically converts the type into the requested double format.
% (Status of: 2017-05-24)
%
% See also: PLofimcontourc, CVLofcontourc, CPLofcontourc, contourc,
% ContourMatrix,
% https://de.mathworks.com/help/matlab/ref/contour-properties.html
%
% CPL=CPLcontourc([Inputparameter])
% === INPUT PARAMETERS ===
% Inputparameter: exactly the parameter same as contourc
% === OUTPUT RESULTS ======
% CPL: Closed polygon list
%
% EXAMPLE:
% figure; axis off; text(0.5,0.5,'This is a Test', 'FontSize',36)
% I=getframe(gcf); I=flipud(I.cdata(:,:,1));
% CPLcontourc(I,1);
%

smbCreateSpring(M1,M2,SGName,len,sprg,damp)- smb creates a spring damper link between two point masses

smbCreateSpring(M1,M2,SGName,len,sprg,damp)% smbCreateSpring(M1,M2,SGName,len,sprg,damp) - smb creates a spring damper link between two point masses
% (by Tim Lueth, SimMechanics, 2017-MÄR-17)
%
% M1 and M2 are connected using LConn1 (Status of: 2017-03-17)
%
% See also: smbNewSystem, smbCreateSGMass
%
% h=smbCreateSpring(M1,M2,[SGName,len,sprg,damp])
% === INPUT PARAMETERS ===
% M1: Mass 1
% M2: Mass 2
% SGName: optional name; default is 'SPRD;
% len: len in mm
% sprg: spring constant in N/m
% damp: Damping in N/(m/s)
% === OUTPUT RESULTS ======
% h: spring-damper block
%
% EXAMPLE:
% smbNewSystem ('smb_exp_2017_03_17b',[0 0 -9.81]);
% M1=smbCreateSGMass;
% M2=smbCreateSGMass;
% smbCreateSpring(M1,M2);
% smbAddLine( 'WORLD/RConn1', [M1 '/LConn1']);
%

smbCreateSGMass (SG,SGName,SGcol)- smbcreates a double mass model with random inertia and point mass

smbCreateSGMass (SG,SGName,SGcol)% smbCreateSGMass (SG,SGName,SGcol) - smbcreates a double mass model with random inertia and point mass
% (by Tim Lueth, SimMechanics, 2017-MÄR-17 as class: MODELING PROCEDURES)
%
% Since smb start the movement in the origin, it is very easy to create
% singularity condition without intention. Therefor, this fnctn links a
% point mass with a random inertia deviation to create objects that can
% be connected by springs (Status of: 2017-03-17)
%
% See also: smbNewSystem, smbCreateSpring
%
% smbCreateSGMass([SG,SGName,SGcol])
% === INPUT PARAMETERS ===
% SG: Solid Geometry; default is a sphere with radius 1
% SGName: Optional Name; default is 'MASS'
% SGcol: Optional Color
%
% EXAMPLE:
% smbNewSystem ('smb_exp_2017_03_17b',[0 0 -9.81]);
% M1=smbCreateSGMass;
% M2=smbCreateSGMass;
% smbCreateSpring(M1,M2);
% smbAddLine( 'WORLD/RConn1', [M1 '/LConn1']);
%

exp_2017_03_17- EXPERIMENT to show falling and oscillation of a mass point

exp_2017_03_17% exp_2017_03_17 - EXPERIMENT to show falling and oscillation of a mass point
% (by Tim Lueth, VLFL-Lib, 2017-MÄR-17 as class: EXPERIMENTS)
%
% This is the basic experiment for mass spring damper systems, starting
% the simulation all in the origin (Status of: 2017-03-17)
%
% exp_2017_03_17
%

SGmodelMass(R)- creates a mass point including 2 frames

SGmodelMass(R)% SGmodelMass(R) - creates a mass point including 2 frames
% (by Tim Lueth, VLFL-Lib, 2017-MÄR-17 as class: SIMMECHANICS INTERFACE)
%
% See also: SGmodelLink, SGmodelJoint, SGmodelNode, SGmodelLink3,
% SGmodelKeyhole, SGmodelLink1, SGmodelLink2
%
% SG=SGmodelMass([R])
% === INPUT PARAMETERS ===
% R: Radius
% === OUTPUT RESULTS ======
% SG: Solid geometry
%
% EXAMPLE:
% SGmodelMass(8)
%

CPLoftext(str,siz,FW,FN)- returns a CPL of one or more textlines separated by \n

CPLoftext(str,siz,FW,FN)% CPLoftext(str,siz,FW,FN) - returns a CPL of one or more textlines separated by \n
% (by Tim Lueth, VLFL-Lib, 2017-MÄR-17 as class: CLOSED POLYGON LISTS)
%
% This fnctn takes seconds to process.
% 10 point ~ 7 mm "g' to 'X' is about 10mm, a line is about 14 mm (Status
% of: 2018-08-27)
%
% Introduced first in SolidGeometry 3.6
%
% See also: CPLofimage, CPLofcontourc, textHorizontalBlockAlign
%
% CPL=CPLoftext(str,[siz,FW,FN])
% === INPUT PARAMETERS ===
% str: one or more textlines separated by \n
% siz: size in pt
% FW: FontWidth; see text; default is 'normal'
% FN: FontName; see text; default is 'Helevetica'
% === OUTPUT RESULTS ======
% CPL: Closed Polygon Line
%
% EXAMPLE:
% tic; CPLoftext('test',0.2); toc;
% tic; CPLoftext('test',70); toc;
% SGofCPLz(CPLoftext('test'),5); view(-30,30);
% CPLoftext('The quick brown fox jumps\n over the lazy dog',10,'bold','Cambria')
%
% See also: CPLofimage, CPLofcontourc, textHorizontalBlockAlign
%
%
% Copyright 2017-2018 Tim C. Lueth

FLofCPL(CPL)- misleading function - use PLFLofCPLdelaunay, PLFLofCPLpoly instead

FLofCPL(CPL)% FLofCPL(CPL) - misleading fnctn - use PLFLofCPLdelaunay, PLFLofCPLpoly instead
% (by Tim Lueth, Video-Lib, 2017-MÄR-17 as class: CLOSED POLYGON LISTS)
%
% Unfortunately such a fnctn is not possible, since the CPL format
% contains nan and repeating points. The best solution would be to use
% PLFLofCPLdelaunay or PLFLofCPLpoly.
% CPLs are more convenient than PL, EL but have some disadvantages
% (Status of: 2018-08-20)
%
% Introduced first in SolidGeometry 3.6
%
% See also: PLFLofCPLpoly, PLFLofCPLdelaunay, PLELofCPL, FLofPLEL
%
% FL=FLofCPL(CPL)
% === INPUT PARAMETERS ===
% CPL: Closed Polygon List
% === OUTPUT RESULTS ======
% FL: Facet List
%
% EXAMPLE: Try instead
% PLFLofCPLdelaunay(CPL)
%
%
% See also: PLFLofCPLpoly, PLFLofCPLdelaunay, PLELofCPL, FLofPLEL
%
%
% Copyright 2017-2018 Tim C. Lueth

CPLofcontourc(C,rem)- converts the contourc format into the CPL format

CPLofcontourc(C,rem)% CPLofcontourc(C,rem) - converts the contourc format into the CPL format
% (by Tim Lueth, VLFL-Lib, 2017-MÄR-17 as class: CLOSED POLYGON LISTS)
%
% Matlab's contourc fnctn is a powerful fnctn to create contours from
% image bit maps similar to the marching cube fnctn in 3D. Nevertheless
% the resulting point list format is outdated. This fnctn converts the
% contourc format into the CPL format. (Status of: 2017-03-18)
%
% See also: CVLofcontourc, contourc, CPLofimage, SGofVMdelaunay,
% SGofVMmarchcube, CPLremstraight
%
% CPL=CPLofcontourc(C,[rem])
% === INPUT PARAMETERS ===
% C: result of the contourc fnctn
% rem: removes straight lines if true; default is true
% === OUTPUT RESULTS ======
% CPL: Closed polygon list
%
% EXAMPLE:
% figure; axis off; text(0.5,0.5,'This is a Test', 'FontSize',36)
% I=getframe(gcf); I=flipud(I.cdata(:,:,1)); C=contourc(double(I),1);
% CPLofcontourc(C)
%

VLofimage(I,pixsize,h,nf)- converts an image into a contour or a solid

VLofimage(I,pixsize,h,nf)% VLofimage(I,pixsize,h,nf) - converts an image into a contour or a solid
% (by Tim Lueth, VLFL-Lib, 2017-MÄR-16 as class: TEXT PROCEDURES)
%
% Rewritten based on the contour fnctn. Quite useful procedure to
% generate contours from images or string comments in combination with
% imageoftext. If parameter h>0, the fnctn returns a solid.
% There is an earlier version, now called VLofimage_2012b. (Status of:
% 2017-03-18)
%
% See also: CPLtextimage, VLFLtextimage, imageoftext
%
% [VL,EL,FL,CPL]=VLofimage(I,[pixsize,h,nf])
% === INPUT PARAMETERS ===
% I: image array
% pixsize: size of a pixel
% h: desired heigth; default is 0 (Contour)
% nf: frame in pixels; if nf>0 the image is impressed; default is 0
% === OUTPUT RESULTS ======
% VL: Vertex list (nx2) for h=0; (nx3) for h>0;
% EL: Edge list
% FL: Facet list
% CPL: Closed Polygon list based on contour
%
% EXAMPLE: Generate a contour for the string 'Test':
% I=imageoftext('TL:MMXII-XI-XII',36);
% [VL,EL,FL]=VLofimage(I,.7); VLELplot(VLaddz(VL),EL,'r-')
% [VL,EL,FL]=VLofimage(I,.7,3); close all, VLFLplot(VL,FL),
%

CPLofimage(I,n,f)- returns a point list related to matlab;s contour function

CPLofimage(I,n,f)% CPLofimage(I,n,f) - returns a point list related to matlab;s contour fnctn
% (by Tim Lueth, VLFL-Lib, 2017-MÄR-16 as class: CLOSED POLYGON LISTS)
%
% based on matlab's contour to accelerate the fnctn VLofimage. If image I
% is a struct, I is converted into a gray scale image by:
% I=1/s(3)*sum(I.cdata,3)
% (Status of: 2017-03-17)
%
% See also: CPLremstraight, VLofimage
%
% CPL=CPLofimage(I,[n,f])
% === INPUT PARAMETERS ===
% I: image
% n: number of contours
% f: if true create a zero frame around; default is false
% === OUTPUT RESULTS ======
% CPL: Closed Polygon List
%
% EXAMPLE:
% figure; axis off; text(0.5,0.5,'This is a Test', 'FontSize',16);
% I=getframe(gcf)
% CPLofimage(I)
% CPLofimage(I.cdata(:,:,1)<240)
% I.cdata=squeeze(I.cdata(:,:,1)); CPLofimage(I)
%

CPLsortinout(CPL,in1st)- returns a inside outside sorted CPL

CPLsortinout(CPL,in1st)% CPLsortinout(CPL,in1st) - returns a inside outside sorted CPL
% (by Tim Lueth, VLFL-Lib, 2017-MÄR-11 as class: CLOSED POLYGON LISTS)
%
% For laser cutting, the insider first order is required. For automatic
% detection of corresponding vessels, outside first is important.
% Corresponance matrix:
% (i,j)==+1 i is inside j, -1== i is outside j, NaN==crossing
% (Status of: 2021-08-05)
%
% Introduced first in SolidGeometry 3.6
%
% See also: CPLselectinout, connectofmat, selectNaN, separateNaN,
% CPLisccwinout, svgpolylineofCPL, CPLwriteSVG, CPLsetallcw
%
% [cind,CC,NCPL,pi]=CPLsortinout([CPL,in1st])
% === INPUT PARAMETERS ===
% CPL: Original CPL
% in1st: true==inside first; false=outside first; default is true
% === OUTPUT RESULTS ======
% cind: level index related to separatedNaN (CPL)
% CC: Corresponance matrix
% NCPL: New contour list sorted by enclosure order
% pi: parent index list [parent level]
%
% EXAMPLE:
% CPLsortinout(selectNaN(CPLsample(14),[1,2,3,6]))
% CPLsortinout(selectNaN(CPLsample(14),[1,2,3,6]),false)
% [~,CC]=CPLsortinout(CPLsample(14)); c=connectofmat(CC)
% CPLselectinout(CPLsample(14),[0 1])
%
% See also: CPLselectinout, connectofmat, selectNaN, separateNaN,
% CPLisccwinout, svgpolylineofCPL, CPLwriteSVG, CPLsetallcw
%
%
% Copyright 2017-2021 Tim C. Lueth

selectNaN(CPL,ci)- connects subsets of closed polygons lines (2D/3D) wrt an index list

selectNaN(CPL,ci)% selectNaN(CPL,ci) - connects subsets of closed polygons lines (2D/3D) wrt an index list
% (by Tim Lueth, VLFL-Lib, 2017-MÄR-11 as class: AUXILIARY PROCEDURES)
%
% Introduced first in SolidGeometry 3.6
%
% See also: lengthNaN, replaceNaN, cellofNaN, separateNaN, uniqueNaN,
% unsortNaN
%
% CPLN=selectNaN(CPL,ci)
% === INPUT PARAMETERS ===
% CPL: CPL / CVL
% ci: index list [
% === OUTPUT RESULTS ======
% CPLN: Subset of CPL or new ordered CPL
%
% EXAMPLE: Select 3 CPL of CPLsample(14)
% selectNaN(VLaddz(CPLsample(14),pi),[1,3,6])
%
% See also: lengthNaN, replaceNaN, cellofNaN, separateNaN, uniqueNaN,
% unsortNaN
%
%
% Copyright 2017-2019 Tim C. Lueth

movepathtotop (pstr)- moves a search path from its current position to the beginning of the search path

movepathtotop (pstr)% movepathtotop (pstr) - moves a search path from its current position to the beginning of the search path
% (by Forian Schleich & Tim Lueth, VLFL-Lib, 2017-MÄR-11 as class:
% AUXILIARY PROCEDURES)
%
% =======================================================================
% OBSOLETE (2019-09-06) - USE 'SGlibmovepathtotop' INSTEAD
% =======================================================================
%
% Some libraries such as VLFL-Lib or SG-Lib overload unfortunately
% existing fnctns such as roundN. Nevertheless, by using the fnctn the
% relevant library can be moved to the top.
% roundn problem solved by renaming it into rounddiv in SG-Lib 4.7
% (Status of: 2019-06-30)
%
% Introduced first in SolidGeometry 3.6
%
% See also: [ SGlibmovepathtotop ] ; VLFLlicense
%
% movepathtotop([pstr])
% === INPUT PARAMETERS ===
% pstr: fullpath of a search directory; default is rec of
%
% See also: [ SGlibmovepathtotop ] ; VLFLlicense
%
%
% Copyright 2017-2019 Tim C. Lueth

RRcputime(RRtictime)- returns realtime difference and cputime difference since first call

RRcputime(RRtictime)% RRcputime(RRtictime) - returns realtime difference and cputime difference since first call
% (by Christian Dietz, VLFL-Lib, 2017-MÄR-09 as class: AUXILIARY
% PROCEDURES)
%
% If Matlab works with 100% CPU time, tic time and CPU time are
% identical. Nevertheless, is makes sense also to check the Realtime in
% realtime systems :-) (Status of: 2017-03-09)
%
% See also: RRrun
%
% [t,tc]=RRcputime([RRtictime])
% === INPUT PARAMETERS ===
% RRtictime: only used for reset by tic
% === OUTPUT RESULTS ======
% t: time difference since first call
% tc: CPUtime difference since first call
%

plotannotation(str,position)- plots a annotation box (per default into the right upper corner) of a plot axis

plotannotation(str,position)% plotannotation(str,position) - plots a annotation box (per default into the right upper corner) of a plot axis
% (by Tim Lueth, VLFL-Lib, 2017-MÄR-09 as class: USER INTERFACE)
%
% the annotation box is able to adjust the size but this fnctn is related
% to the "left" "HorizontalAlignment". Therefor it is necessary to
% calculate a little to bring an automatical size adjusted box into the
% right corner of a subplot
%
% See also: findobj(findall(groot),'Type','Textbox')
% (Status of: 2020-10-10)
%
% Introduced first in SolidGeometry 3.6
%
% See also: SGfigureannotation, SGhelptext, plotannotationdelete,
% plotannotationtopleft, titleofcaller, annotation
%
% t=plotannotation(str,[position])
% === INPUT PARAMETERS ===
% str: string or cell with separated strings
% position: Vtop, Vmiddle, Vdown, Hright, Hmiddle, Hleft, left, right,
% center
% === PROPERTY NAMES =====
% 'Vtop' :
% 'Vmiddle' :
% 'Vdown' :
% 'Hright' :
% 'Hmiddle' :
% 'Hleft' :
% 'left' :
% 'right' :
% 'center' : ?
% === OUTPUT RESULTS ======
% t: handle to annotation box
%
% EXAMPLE:
% subplot(2,2,3);
% t=plotannotation({'RED = ccw','GREEN = cw','long long text row'},'linestyle','none');
% subplot(2,2,2);
% t=plotannotation('Line 1\n Line 2\n\nLine 3','linestyle','none');
% t=plotannotation('Line 1\n Line 2\n\nLine 3','linestyle','none','Vdown','Hmiddle','left'); shg
%
%
% See also: SGfigureannotation, SGhelptext, plotannotationdelete,
% plotannotationtopleft, titleofcaller, annotation
%
%
% Copyright 2017-2021 Tim C. Lueth
RapidWeaver Icon

Last Change Oct 2023 for SG-Lib 5.3