function draw_anime(Anime, q)
% function draw_anime(Anime, q)
% 
% アニメーション描画
% 
% Copyright (C) 2007 清水 信行, 曽我部 潔, 椎葉 太一 All Rights Reserved.

% Figureのリセット
clf reset;

figure(1);
set(gcf, 'doublebuffer', 'on');

% 図の書式設定
set(gcf, 'Position', [100 100 400 400]);
set(gcf, 'Color', [0.0 0.0 0.2]);

axis equal;
axis(Anime.Frame);
set(gca, 'Color',  [0.0 0.0 0.1]);
set(gca, 'XColor', [1.0 1.0 1.0]);
set(gca, 'YColor', [1.0 1.0 1.0]);
set(gca, 'XTick', ...
	[Anime.Frame(1):(Anime.Frame(2)-Anime.Frame(1))/4:Anime.Frame(2)]);
set(gca, 'YTick', ...
	[Anime.Frame(3):(Anime.Frame(4)-Anime.Frame(3))/4:Anime.Frame(4)]);

grid on;

% アニメーションの描画
hold on;

for i=1:Anime.Number
	xL = q(Anime.Data(i,1),1) ...
		+ Anime.Data(i,2)*cos(q(Anime.Data(i,1),3)) ...
		- Anime.Data(i,3)*sin(q(Anime.Data(i,1),3));
	
	yL = q(Anime.Data(i,1),2) ...
		+ Anime.Data(i,2)*sin(q(Anime.Data(i,1),3)) ...
		+ Anime.Data(i,3)*cos(q(Anime.Data(i,1),3));
	
	xR = q(Anime.Data(i,1),1) ...
		+ Anime.Data(i,4)*cos(q(Anime.Data(i,1),3)) ...
		- Anime.Data(i,5)*sin(q(Anime.Data(i,1),3));
	
	yR = q(Anime.Data(i,1),2) ...
		+ Anime.Data(i,4)*sin(q(Anime.Data(i,1),3)) ...
		+ Anime.Data(i,5)*cos(q(Anime.Data(i,1),3));
	
	plot([xL,xR], [yL,yR], 'color', [1.0 1.0 0.0], 'linewidth', 2.0);
end

hold off;

drawnow;

% =================================================================================
% プログラムの使用条件
% 1. 本プログラムおよびデータを商用で，頒布してはならない．
% 2. 本プログラムおよびデータを著作者の許可なく営利目的で利用してはならない．
% 3. 本プログラムおよびデータの改変は，営利目的でない限り自由である．
% 4. 本プログラムおよびデータを使用することにより生じた損害などについては，著者，
%    プロクラム著作者，(社)日本機械学会，および(株)コロナ社は一切の責任を負わない．
% 5. 本プログラムの著作権は，本書編著者ならびにプログラム著作者に帰す．
% =================================================================================