Я пытаюсь создать простые формы, шестиугольник, пятиугольник, треугольник и т. Д., Имея начальную точку и вычисляя, где должны быть другие точки для каждой вершины. И я продолжаю создавать прямые линии или причудливые перекрывающиеся полигоны. Я использую метод ниже, чтобы попытаться вычислить вершины шестиугольника, затем делаю простой graphics.DrawPolygon(pen, aptsVertices)
, чтобы нарисовать его позже. Любая помощь будет оценена по достоинству.
protected override void CalculateVertices()
{
//member variables
aptsVertices = new Point[6];
deg = 120;
rad = deg * (Math.PI / 180);
double nSinDeg = Math.Sin(rad);
double nCosDeg = Math.Cos(rad);
aptsVertices[0] = ptFirstVertex;
for(int i = 1; i < aptsVertices.Length; i++)
{
double x = aptsVertices[i - 1].X - nCosDeg * nSideLength;
double y = aptsVertices[i - 1].Y - nSinDeg * nSideLength;
aptsVertices[i] = new Point((int)x, (int)y);
//recalculate the degree for the next vertex
deg += 120;
rad = deg * (Math.PI / 180);
nSinDeg = Math.Sin(rad);
nCosDeg = Math.Cos(rad);
}
}