桿座標輸入
function link_plot(x,y,w)
%link_plot.m will call links.m
%draw connecting linkshape function
%Input:(x,y)are serial coordinates
% w:width of links
%Example: link_plot([0 3 5 1],[0 3 2 1],3)
%Author:DSFon, BIME,NTU. Date:Jan. 25, 2007
clf;
if nargin==2,w=1;end
for i=1:length(x)-1
linkshape([x(i) y(i)],[x(i+1) y(i+1)],w);
end
這個程式雖短,但只要有一組座標輸入即可繪出其連桿組外型。例如:連續四桿之座標分別為(0,0), (3,3), (5,2), (5,5)等四點,其輸入型式為:
>> link_plot([0 3 5 4],[0 3 2 5])
執行結果如下圖:
桿長度與角度輸入
前面程式link_plot之輸入為各桿端點之座標。但有些時候,一組連桿常僅知道桿長及桿與前桿所夾之角度。這種表示法普見於機器手臂之討論。本節提出之link_angle程式,就是實現這個想法。此時之輸入參數為各桿之長度(lens),對應水平角度(angle)及起點(start)與桿寬(w)等。
function link_angle(lens,angle,start,w)
%link_plot.m will call links.m
%draw connecting links
%Input:lens:lengths of links
% angle:link angles w/t the former link, degs
% w:width of links
% start:starting point(x0,y0)
%Example: link_angle([5 3 4 6],[30 60 90 145])
%Author:DSFon, BIME,NTU. Date:Jan. 25, 2007
if nargin<4,w=1;end;
if nargin<3,start=[0 0];end
lens=lens(:);angle=angle(:);
th=angle*pi/180;
x=cumsum([start(1);lens.*cos(th)]);
y=cumsum([start(2);lens.*sin(th)]);
for i=1:length(x)-1
linkshape([x(i) y(i)],[x(i+1) y(i+1)],w);
end
若使用桿長及水平角度輸入,則可使用下面之plot_angle程式進行,設桿長為5,3,4,6個單位,其對應水平角分別為30, 60, 90, 145度,則可執行如下:
>>link_angle([3 4 6],[60 90 145],[4.2,2.5])
執行結果如下圖:
I read this article fully regarding the resemblance of most up-to-date and earlier technologies, it's remarkable article.
ReplyDeleteFeel free to surf to my website - hotmail search