% PRM グラフを作成する

% 経路探索に必要な変数をファイル 'PRM.mat' に保存
% save('PRM.mat', 'g', 'x', 'y', 'points', 'npoints')

rng(1);

npoints = 0;
points = [];
[ points, npoints ] = PRM_free_points (points, npoints, 10000, 4000);

nedges = 0;
edges = [];
[ edges, nedges ] = PRM_free_edges (edges, nedges, 0.3, points, npoints);

x = points(:,1)';
y = points(:,2)';

%set(0,'defaultAxesFontSize',16);
%set(0,'defaultTextFontSize',16);

plot(x,y,'ok');
xlim([-0.5, 10.5]);
ylim([-0.5,  5.5]);
%axis equal;
pbaspect([11 6 1]);
saveas(gcf, 'PRM_points.png', 'png');
fprintf("自由な点の集合\n");
fprintf("一時停止：何かのキーを押してください\n");
pause;

snode = edges(:,1)';
tnode = edges(:,2)';
dist = edges(:,3)';

g = graph(snode,tnode,dist);

plot(g, 'XData',x,'YData',y);
xlim([-0.5, 10.5]);
ylim([-0.5,  5.5]);
%axis equal;
pbaspect([11 6 1]);
saveas(gcf, 'PRM_graph.png', 'png');
fprintf("自由な点を自由な線分で接続し，グラフを作成\n");
fprintf("一時停止：何かのキーを押してください\n");
pause;

save('PRM.mat', 'g', 'x', 'y', 'points', 'npoints');
