Библиотека чертежей вычисляет диапазоны и средние точки, чтобы нарисовать звезду - PullRequest
0 голосов
/ 16 февраля 2020

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

class Triangle : Shape
{
    //This class contains the specific details for a triangle defined in terms of opposite corners
    Point keyPt, oppPt;      // these points identify opposite corners of the triangle

    public Triangle(Point keyPt, Point oppPt)   // constructor
    {
        this.keyPt = keyPt;
        this.oppPt = oppPt;
    }

    public void draw(Graphics g, Pen blackPen)
    {

        double xDiff, yDiff, xMid, yMid;   // range and mid points of x & y  

        // calculate ranges and mid points
        xDiff = oppPt.X - keyPt.X;
        yDiff = oppPt.Y - keyPt.Y;
        xMid = (oppPt.X + keyPt.X) / 2;
        yMid = (oppPt.Y + keyPt.Y) / 2;

        // draw triangle
        g.DrawLine(blackPen, (int)keyPt.X, (int)keyPt.Y, (int)(xMid + yDiff / 2), (int)(yMid - xDiff / 2));
        g.DrawLine(blackPen, (int)(xMid + yDiff / 2), (int)(yMid - xDiff / 2), (int)oppPt.X, (int)oppPt.Y);
        g.DrawLine(blackPen, (int)keyPt.X, (int)keyPt.Y, oppPt.X, oppPt.Y);
    }
}

Ценю вашу помощь.

...