Сохранение треугольника для перерисовки C # - PullRequest
0 голосов
/ 05 сентября 2018

Я бы хотел сохранить все точки, необходимые для рисования прямоугольника в списке, чтобы можно было нарисовать другой треугольник и сохранить предыдущий. Я сделал это для других фигур, таких как прямоугольник и т. Д., Сохранив их в

List< Rectangle > _rect = new List< Rectangle >

и итерация по ним с использованием

foreach(Rects rect in _rect)

Что делать, когда дело доходит до треугольника?

    public PointF[] tPoints { get; set; }

    public void DrawTriangle(PaintEventArgs e)
    {
        tPoints = new PointF[3];
        float angle = 0;
        tPoints[0].X = x;
        tPoints[0].Y = y;
        tPoints[1].X = (float)(x + width * Math.Cos(angle));
        tPoints[1].Y = (float)(y + width * Math.Sin(angle));
        tPoints[2].X = (float)(x + width * Math.Cos(angle - Math.PI / 3));
        tPoints[2].Y = (float)(y + width * Math.Sin(angle - Math.PI / 3));

        e.Graphics.InterpolationMode = InterpolationMode.High;
        e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;
        e.Graphics.DrawPolygon(new Pen(color, strokeThickness), tPoints);
    }

1 Ответ

0 голосов
/ 05 сентября 2018

Вы можете создать такой тип данных самостоятельно!

struct Triangle {
    // all your need for a triangle is three points, isn't it?
    public Point PointA { get; }
    public Point PointB { get; }
    public Point PointC { get; }

    public Triangle(Point a, Point b, Point c) {
        PointA = a;
        PointB = b;
        PointC = c;
    }
}

И тогда вы можете создать его список:

var triangles = new List<Triangles>();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...