ランダムに重なり合わない複数の円を描きたいと思います。そのために、円の半径とxとyの位置を格納するのオブジェクトを作成する場合は、(これらはランダム)です。次にこれらのオブジェクトを配列に追加して、後で円が他の円と重なるかどうかを計算します。複数の値+名前を1つのオブジェクトに格納する
私は、コードは次のようになりますJavascriptをp5.jsであることを知っている:
var circles = [];
for (var i = 0; i < 30; i++) {
var circle = {
x: random(width),
y: random(height),
r: 32
};
circles.push(circle);
}
//and now I can draw the circles like following but in a loop:
ellipse(circles[i].x, circles[i].y, circles[i].r*2, circles[i].r*2);
C#でこれを行う方法はありますか?
public class Circle
{
// In C# this is called a "property" - you can get or set its values
public double x { get; set; }
public double y { get; set; }
public double r { get; set; }
}
private static List<Circle> InitializeList()
{
Random random = new Random();
List<Circle> listOfCircles = new List<Circle>();
for (int i = 0; i < 30; i++)
{
// This is a special syntax that allows you to create an object
// and initialize it at the same time
// You could also create a custom constructor in Circle to achieve this
Circle newCircle = new Circle()
{
x = random.NextDouble(),
y = random.NextDouble(),
r = random.NextDouble()
};
listOfCircles.Add(newCircle);
}
return listOfCircles;
}
ロジックは実際にはWindowsフォーム、ASP.NET、WPF、または何をやっているかどうかに依存し、画面上でこれを描くために、しかし、あなたはしたい:
[Ellipse](https://msdn.microsoft.com/en-us/library/system.windows.shapes.ellipse(v = vs.110).aspx)を使用するか、独自のクラスを書くことができます。 –
はいC#でそれを行う方法があります。 – Auguste
VSフォームプロジェクトでは、ツールボックスに使用できる楕円形のVisual Basic Power Packがあります。楕円形は、サイズ幅とサイズ高さがあり、円を描くように等しくすることができます。だからあなたはリストを持つことができます circles = new List (); –
jdweng