Info

이 질문은 마감되었습니다. 편집하거나 답변을 올리려면 질문을 다시 여십시오.

please delete this question

조회 수: 1 (최근 30일)
satoshi oi
satoshi oi 2018년 6월 21일
마감: satoshi oi 2018년 6월 25일
please delete this question

답변 (1개)

mizuki
mizuki 2018년 6월 22일
편집: mizuki 2018년 6월 23일
dt.Points の1列目がx点のインデクス、2列目がy点のインデクスになります。それぞれの座標を edges 関数で求めるとxの長さ、yの長さが求まると思います。ピタゴラスの定理で斜辺を求めれば距離が計算できます。
% 変数定義
rng(0)
x = rand(10,1);
y = rand(10,1);
xy = [x y];
dt = delaunayTriangulation(x,y);
edge_idx = edges(dt);
%%TRIPLOT を使った描画
triplot(dt)
%%距離計算
xpts = x(edge_idx);
ypts = y(edge_idx);
xdist = abs(xpts(:,1) - xpts(:,2));
ydist = abs(ypts(:,1) - ypts(:,2));
xydist = sqrt(xdist.^2 + ydist.^2);
graph 関数を使うと扱いやすい&きれいなvisualizeができます。
%%GRAPH を使った描画
EdgeTable = table(edge_idx,'VariableNames',{'EndNodes'});
G = graph(EdgeTable);
G.Edges.Weight = xydist;
h = plot(G, 'EdgeLabel', G.Edges.Weight);
h.XData = x;
h.YData = y;

이 질문은 마감되었습니다.

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!