2016-09-08 10 views
0

多くの矩形を作成したい。これは自動的に行われます。私のコードに何千もの値を入力しなくても、どうすればいいですか?解決策はありますか?どのようにランダム矩形を(自動的に)作成できますか?

  • 私のコードでは、ベクトル "V"にすべての単一座標点(各四角形の4点)を手動で書きました。
  • また、それらを接続する方法。 "F"
  • そして各矩形の値。 「C」

マイコードあなたがランダムに左下コーナー位置(x、y)を生成し、ランダムに生成することにより、ランダムな長方形を作成するには、次の関数を使用することができ

clc 
clear all 
figure; 
V = [0,0;1,0;1,1;0,1;5,5;10,5;10,10;5,10;2,2;4,2;4,4;2,4]; 
F = [1,2,3,4;5,6,7,8;9,10,11,12];%Dieser Vektor sagt mir in welcher Reihenfolge die Punkte 
C = [50;24;99]; 

patch('Faces',F,'Vertices',V,'FaceVertexCData',C,'FaceColor','flat','EdgeColor','none') %Befehl fürs "zeichnen" 
colormap(parula) 
colorbar 
+1

サンプル** **ランダム値** ** 1.左上隅の点「 '' x'''。 2.左上隅の点「 '' y'''。 3.「長さx」。 3. '' 'y-length'''。いくつかの境界チェックをするだけです。 (例えば '' 'x0> = 0'''、' 'y0> = 0''';' '' x0 + x-length <= width''など) – sascha

答えて

0

あります幅と高さ -

function rect = createRandomRectangle(maxX, maxY, minHeight, maxHeight, minWidth, maxWidth) 

    bottom = maxY * rand; 
    left = maxX * rand; 

    height = minHeight + rand * (maxHeight - minHeight); 
    width = minWidth + rand * (maxWidth - minWidth); 

    rect = [ 
     left, bottom 
     left, bottom + height 
     left + width, bottom + height 
     left + width, bottom 
    ]; 

end 

は、その後、あなただけ(ループ内でcreateRandomRectangleを呼び出すことで)あなたのVFC行列を作成するの世話をする必要がありAN dそれらをプロットする。

関連する問題