/// <inheritdoc cref="IPaperXmlElementWriter.WritePolygonPaperFigure(StreamWriter, IPaperFigure)"/>
 public void WritePolygonPaperFigure(StreamWriter writer, IPaperFigure polygonFigure)
 {
     WriteElementName(writer, polygonFigure as PolygonFigure);
     WriteSides(writer, polygonFigure as PolygonFigure);
     WriteColor(writer, polygonFigure);
     WriteEndElement(writer, polygonFigure as PolygonFigure);
 }
 /// <inheritdoc cref="IPaperXmlElementWriter.WriteCircularPaperFigure(StreamWriter, IPaperFigure)"/>
 public void WriteCircularPaperFigure(StreamWriter writer, IPaperFigure circularFigure)
 {
     WriteElementName(writer, circularFigure as CircularFigure);
     WriteRadius(writer, circularFigure as CircularFigure);
     WriteColor(writer, circularFigure);
     WriteEndElement(writer, circularFigure as CircularFigure);
 }
        /// <summary>
        /// Constructor to initialize a rectangle through two or four sides and other paper figure.
        /// </summary>
        /// <param name="sidesCollection">Two or four sides</param>
        public PaperRectangle(IEnumerable <double> sidesCollection, IPaperFigure figure) : base(sidesCollection)
        {
            double area = Sides[0] * Sides[1];

            if (area > figure.GetArea())
            {
                throw new ArgumentException("You cannot create a shape because the original shape is smaller.");
            }

            Color     = figure.Color;
            IsRecolor = true;
        }
Esempio n. 4
0
        /// <summary>
        /// Constructor to initialize a circle through a radius and other paper figure.
        /// </summary>
        /// <param name="radius">Cicle radius</param>
        /// <param name="figure">Other paper figure</param>
        public PaperCircle(double radius, IPaperFigure figure) : base(radius)
        {
            double area = Math.PI * Math.Pow(Radius, 2);

            if (area > figure.GetArea())
            {
                throw new ArgumentException("You cannot create a shape because the original shape is smaller.");
            }

            Color     = figure.Color;
            IsRecolor = true;
        }
Esempio n. 5
0
        /// <summary>
        /// Constructor to initialize a square through one or three sides and other paper figure.
        /// </summary>
        /// <param name="sidesCollection">Three sides</param>
        /// <param name="figure">Other paper figure</param>
        public PaperTriangle(IEnumerable <double> sidesCollection, IPaperFigure figure) : base(sidesCollection)
        {
            double halfPerimetr = Sides.Sum() / 2;
            double area         = Math.Sqrt(halfPerimetr * (halfPerimetr - Sides[0]) * (halfPerimetr - Sides[1]) * (halfPerimetr - Sides[2]));

            if (area > figure.GetArea())
            {
                throw new ArgumentException("You cannot create a shape because the original shape is smaller.");
            }

            Color     = figure.Color;
            IsRecolor = true;
        }
Esempio n. 6
0
        /// <summary>
        /// Paints a figure in a given color
        /// </summary>
        /// <param name="figure"> Figure to paint</param>
        /// <param name="color"> Color</param>
        public static void Colorize(Figure figure, Сoloring color)
        {
            if (figure is IPaperFigure)
            {
                IPaperFigure fig = (IPaperFigure)figure;

                fig.Сolor = color;
            }
            else
            {
                throw new Exception("This figure cannot be painted.");
            }
        }
Esempio n. 7
0
 /// <summary>
 /// Write figure color to Xml file using StreamWriter
 /// </summary>
 /// <param name="writer">StreamWriter object</param>
 /// <param name="figure">The figure whose color should be written</param>
 protected void WriteColor(StreamWriter writer, IPaperFigure figure) => writer.WriteLine($"<{nameof(figure.Color)}>{figure.Color}</{nameof(figure.Color)}>");
Esempio n. 8
0
 /// <summary>
 /// Write figure color to Xml file using XmlWriter
 /// </summary>
 /// <param name="writer">XmlWriter object</param>
 /// <param name="figure">The figure whose color should be written</param>
 protected void WriteColor(XmlWriter writer, IPaperFigure figure) => writer.WriteElementString(nameof(figure.Color), figure.Color.ToString());
 /// <inheritdoc cref="Square(IEnumerable{double}, IFigure)"/>
 public PaperSquare(IEnumerable <double> sides, IPaperFigure cutOutPaperFigure) : base(sides, cutOutPaperFigure)
 {
     Color     = cutOutPaperFigure.Color;
     IsPainted = true;
 }
Esempio n. 10
0
 /// <inheritdoc cref="Circle(double, IFigure)"/>
 public PaperCircle(double radius, IPaperFigure cutOutPaperFigure) : base(radius, cutOutPaperFigure)
 {
     Color     = cutOutPaperFigure.Color;
     IsPainted = true;
 }