MATLAB:ボロノイ図にポリゴンの頂点(座標)を導出する方法は?

StackOverflow https://stackoverflow.com/questions/7819153

  •  26-10-2019
  •  | 
  •  

質問

画像に行を描画するための作成された関数ファイルがあります。[img]=drawline(point1,point2,color,img). 。画像内にある2つのポイントを接続するために使用されます。画像にボロノイ図を作成するように求められます(プロット関数を使用しない)。とりあえず、私は画像の線を見せようとしていますが、ポリゴンのエッジの頂点を取得する方法がわかりません。

いくつかのテストコードを使用しています:

x=[50 70 70 30 40 ];% this is just some simple values for testing, 
y=[50 30 90 30 80 ];% in further stage, i plan to use `x=rand(n,1)*200`.
img=zeros(200,200,3);
color=[255 0 0];
[vx,vy]=voronoi(x,y); 

私は上記までしか知っていません、次に私は使用する必要があると思います for loop 頂点を並べます。開始方法がわかりません。また、画像に表示する必要がある場合は、ネガティブおよび無限の問題を解決する方法にもこだわっています(ピクセルの座標)。

役に立ちましたか?

解決

あなたがこれを持っていると仮定します drawline 画像に線を描く関数、これが一連のポイントのボロノイ図のエッジの上にループする方法です。

%# set of points and voronoi diagram
X = rand(10,1)*200; Y = rand(10,1)*200;
[vx,vy] = voronoi(X,Y);

%# vertices connecting the edges
p1 = [vx(1,:);vy(1,:)];     % columns are "from" points
p2 = [vx(2,:);vy(2,:)];     % columns are "to" points

%# draw edges on top of image matrix
img = zeros(200,200,3);
clr = [255 0 0];
for i=1:size(vx,2)
    img = drawline(p1(:,i), p2(:,i), clr, img);
end
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top