六角形のポリゴンを作成してオブジェクトとして取得する方法を作成しましたが、そのオブジェクトの使い方がわかりません。コードは次のとおりです。
public object Hexagon()
{
float h;
float r;
int x = 20;
int y = 20;
int s = 10;
h = HexOperations.ConvertToFloat(HexOperations.Calc(s));
r = HexOperations.ConvertToFloat(HexOperations.Calc(s));
Point[] vert= new Point[6];
vert[0] = new Point(x, y);
vert[1] = new Point(x + s, y);
vert[2] = new Point(x + s + h, y + r);
vert[3] = new Point(x + s, y + r + r);
vert[4] = new Point(x, y + r + r);
vert[5] = new Point(x - h, y + r);
Polygon pol = new Polygon();
System.Windows.Media.PointCollection pointC = new System.Windows.Media.PointCollection();
pointC.Add(vert[0]);
pointC.Add(vert[1]);
pointC.Add(vert[2]);
pointC.Add(vert[3]);
pointC.Add(vert[4]);
pointC.Add(vert[5]);
pol.Points = pointC;
pol.Stroke = Brushes.Black;
return pol;
}
戻る前に「MainGrid.Children.Add(pol)」を追加すると、グリッド「MainGrid」に六角形が印刷されているのがわかりますが、上記のメソッドの外で使用する方法がわかりません。私はこれを試しました:
MainGrid.Children.Add(Hexagon());
「「オブジェクト」からSystem.Window.UIElementに変換できません」というエラーが表示されます。
また試した:
Polygon poly = new Hexagon();
これは、「新しい式には()。[]、{}、;、型の後」と書かれています。
そして:
Hexagon poly = new Hexagon();
そして、これは明らかに私に指を与えました。他に何をしようかわからない。アプローチに根本的な間違いを犯しているせいかもしれませんが、とにかくよろしくお願いします。
メソッドは戻り値を返すように宣言されてobject
いますが、それがであることがわかっているPolygon
ので、呼び出し元がPolygon
(妥当と思われる)戻り値を返すことに依存するようにするには、戻り値の型を変更する必要があります。
public Polygon Hexagon()
また、メソッドをタイプ名として使用するか、直接渡すのではなく、メソッドを呼び出す必要がありますnew
。
Polygon polygon = Hexagon();
// Use polygon here
私もお勧めします:
CreateHexagon
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加