/// <summary> /// Метод выполняет отрисовку линии в открытый файл /// </summary> /// <param name="X1">Абсцисса начала линии</param> /// <param name="Y1">Ордината начала линии</param> /// <param name="X2">Абсцисса конца линии</param> /// <param name="Y2">Ордината конца линии</param> /// <param name="LineWidth">Толщина линии</param> /// <param name="LineColor">Цвет линии</param> /// <returns>Возвращает true в случае успеха или false в случае некорректного задания размеров (выход за область отрисовки)</returns> public bool DrawLine(double X1, double Y1, double X2, double Y2, uint LineWidth, Color LineColor) { // Контроль состояния if (initResult != VectorAdapterInitResults.Opened) { return(false); } // Контроль значений // Если вся линия выходит за границу отрисовки if ((X1 < clipBoxX1) && (X2 < clipBoxX1) || (X1 > clipBoxX2) && (X2 > clipBoxX2) || (Y1 < clipBoxY1) && (Y2 < clipBoxY1) || (Y1 > clipBoxY2) && (Y2 > clipBoxY2) || (LineWidth == 0)) { return(false); } // Пересчёт координат double x1 = 0.0, x2 = 0.0, y1 = 0.0, y2 = 0.0; VectorAdapterSupport.InboundCoords(clipBoxX1, clipBoxX2, clipBoxY1, clipBoxY2, X1, X2, Y1, Y2, out x1, out x2, out y1, out y2); // Отрисовка g.DrawLine(new Pen(LineColor, LineWidth), (float)x1, (float)y1, (float)x2, (float)y2); return(true); }
/// <summary> /// Метод выполняет отрисовку линии в открытый файл /// </summary> /// <param name="X1">Абсцисса начала линии</param> /// <param name="Y1">Ордината начала линии</param> /// <param name="X2">Абсцисса конца линии</param> /// <param name="Y2">Ордината конца линии</param> /// <param name="LineWidth">Толщина линии</param> /// <param name="LineColor">Цвет линии</param> /// <returns>Возвращает true в случае успеха или false в случае некорректного задания размеров (выход за область отрисовки)</returns> public bool DrawLine(double X1, double Y1, double X2, double Y2, uint LineWidth, Color LineColor) { // Контроль состояния if (initResult != VectorAdapterInitResults.Opened) { return(false); } // Контроль значений // Если вся линия выходит за границу отрисовки if ((X1 < clipBoxX1) && (X2 < clipBoxX1) || (X1 > clipBoxX2) && (X2 > clipBoxX2) || (Y1 < clipBoxY1) && (Y2 < clipBoxY1) || (Y1 > clipBoxY2) && (Y2 > clipBoxY2) || (LineWidth == 0)) { return(false); } // Пересчёт координат double x1 = 0.0, x2 = 0.0, y1 = 0.0, y2 = 0.0; VectorAdapterSupport.InboundCoords(clipBoxX1, clipBoxX2, clipBoxY1, clipBoxY2, X1, X2, Y1, Y2, out x1, out x2, out y1, out y2); // Отрисовка SW.WriteLine("<line stroke=\"#" + (LineColor.ToArgb() & 0xFFFFFF).ToString("X06") + "\" stroke-width=\"" + ((double)LineWidth / 2.0).ToString(cie.NumberFormat) + "\" x1=\"" + x1.ToString(cie.NumberFormat) + "\" y1=\"" + y1.ToString(cie.NumberFormat) + "\" x2=\"" + x2.ToString(cie.NumberFormat) + "\" y2=\"" + y2.ToString(cie.NumberFormat) + "\"/>"); return(true); }
private bool CreateEllipse(double X1, double Y1, double X2, double Y2, uint LineWidth, Color RectangleColor, bool Fill) { // Контроль состояния if (initResult != VectorAdapterInitResults.Opened) { return(false); } // Контроль значений // Если вся линия выходит за границу отрисовки if ((X1 < clipBoxX1) && (X2 < clipBoxX1) || (X1 > clipBoxX2) && (X2 > clipBoxX2) || (Y1 < clipBoxY1) && (Y2 < clipBoxY1) || (Y1 > clipBoxY2) && (Y2 > clipBoxY2) || (LineWidth == 0)) { return(false); } // Пересчёт координат double x1 = 0.0, x2 = 0.0, y1 = 0.0, y2 = 0.0; VectorAdapterSupport.InboundCoords(clipBoxX1, clipBoxX2, clipBoxY1, clipBoxY2, X1, X2, Y1, Y2, out x1, out x2, out y1, out y2); // Отрисовка if (Fill) { SW.WriteLine("<ellipse fill=\"#" + (RectangleColor.ToArgb() & 0xFFFFFF).ToString("X06") + "\" cx=\"" + (x1 + (x2 - x1) / 2).ToString(cie.NumberFormat) + "\" cy=\"" + (y1 + (y2 - y1) / 2).ToString(cie.NumberFormat) + "\" rx=\"" + ((x2 - x1) / 2).ToString(cie.NumberFormat) + "\" ry=\"" + ((y2 - y1) / 2).ToString(cie.NumberFormat) + "\"/>"); } else { SW.WriteLine("<ellipse stroke=\"#" + (RectangleColor.ToArgb() & 0xFFFFFF).ToString("X06") + "\" stroke-width=\"" + ((double)LineWidth / 2.0).ToString(cie.NumberFormat) + "\" fill=\"none" + "\" cx=\"" + (x1 + (x2 - x1) / 2).ToString(cie.NumberFormat) + "\" cy=\"" + (y1 + (y2 - y1) / 2).ToString(cie.NumberFormat) + "\" rx=\"" + ((x2 - x1) / 2).ToString(cie.NumberFormat) + "\" ry=\"" + ((y2 - y1) / 2).ToString(cie.NumberFormat) + "\"/>"); } return(true); }
private bool CreateEllipse(double X1, double Y1, double X2, double Y2, uint LineWidth, Color RectangleColor, bool Fill) { // Контроль состояния if (initResult != VectorAdapterInitResults.Opened) { return(false); } // Контроль значений // Если вся линия выходит за границу отрисовки if ((X1 < clipBoxX1) && (X2 < clipBoxX1) || (X1 > clipBoxX2) && (X2 > clipBoxX2) || (Y1 < clipBoxY1) && (Y2 < clipBoxY1) || (Y1 > clipBoxY2) && (Y2 > clipBoxY2) || (LineWidth == 0)) { return(false); } // Пересчёт координат double x1 = 0.0f, x2 = 0.0f, y1 = 0.0, y2 = 0.0; VectorAdapterSupport.InboundCoords(clipBoxX1, clipBoxX2, clipBoxY1, clipBoxY2, X1, X2, Y1, Y2, out x1, out x2, out y1, out y2); // Отрисовка if (Fill) { g.FillEllipse(new SolidBrush(RectangleColor), (float)x1, (float)y1, (float)(x2 - x1), (float)(y2 - y1)); } else { g.DrawEllipse(new Pen(RectangleColor, LineWidth), (float)x1, (float)y1, (float)(x2 - x1), (float)(y2 - y1)); } return(true); }