private static void DrawArrow(Graphics graphics, Color color, WindowShape toolWindow)
        {
            PointF pointF = ToolResultRender.Unscall(toolWindow.Center);
            float  angle  = ToolResultRender.Unscall((float)toolWindow.Angle);

            using (Pen pen = new Pen(color, 3f))
            {
                pen.EndCap = LineCap.ArrowAnchor;
                graphics.TranslateTransform(pointF.X, pointF.Y);
                graphics.RotateTransform(angle);
                graphics.DrawLine(pen, PointF.Empty, new PointF(15f, 0.0f));
                graphics.DrawLine(pen, PointF.Empty, new PointF(0.0f, -15f));
                graphics.ResetTransform();
            }
        }
        private static PositionControl GetPositionAdjusted(
            PositionAdjustToolSettingBase posSetting,
            PositionAdjustToolResultBase posResult,
            WindowShape shape)
        {
            PositionControl positionControl = new PositionControl();
            int             num1            = shape.Center.X - posSetting.ToolWindow.Center.X;
            int             num2            = shape.Center.Y - posSetting.ToolWindow.Center.Y;
            int             num3            = (int)posResult.Description.nAngle - posSetting.ToolWindow.Angle;
            double          num4            = Math.Cos(Math.PI / 180.0 * (double)num3 / 10.0);
            double          num5            = Math.Sin(Math.PI / 180.0 * (double)num3 / 10.0);

            positionControl.sPoint.nX = (short)(num4 * (double)num1 - num5 * (double)num2 + (double)posResult.Description.sPoint.nX);
            positionControl.sPoint.nY = (short)(num5 * (double)num1 + num4 * (double)num2 + (double)posResult.Description.sPoint.nY);
            positionControl.nAngle    = (short)(shape.Angle + num3);
            return(positionControl);
        }
        private static void DrawPositionAdjustedVector(
            Graphics graphics,
            Color color,
            WindowShape toolWindow,
            PositionControl description)
        {
            WindowShape     toolWindow1     = (WindowShape)null;
            RectangleWindow rectangleWindow = toolWindow as RectangleWindow;

            if (rectangleWindow != null)
            {
                toolWindow1 = (WindowShape) new RectangleWindow(description.sPoint.nX, description.sPoint.nY, (ushort)rectangleWindow.Size.Width, (ushort)rectangleWindow.Size.Height, (short)((int)description.nAngle + toolWindow.Angle));
            }
            CircleWindow circleWindow = toolWindow as CircleWindow;

            if (circleWindow != null)
            {
                toolWindow1 = (WindowShape) new CircleWindow(description.sPoint.nX, description.sPoint.nY, (ushort)circleWindow.Diameter);
            }
            ToolResultRender.DrawVector(graphics, color, toolWindow1);
        }
        private static void DrawVector(Graphics graphics, Color color, WindowShape toolWindow)
        {
            RectangleWindow rectangleWindow = toolWindow as RectangleWindow;

            using (Pen pen = new Pen(color, 2.5f))
            {
                if (rectangleWindow != null)
                {
                    ToolResultRender.DrawRectangle(graphics, pen, rectangleWindow.Center, rectangleWindow.Size, (float)rectangleWindow.Angle);
                }
                CircleWindow circleWindow = toolWindow as CircleWindow;
                if (circleWindow != null)
                {
                    ToolResultRender.DrawCircle(graphics, pen, circleWindow.Center, circleWindow.Diameter);
                }
            }
            if (toolWindow == null)
            {
                return;
            }
            ToolResultRender.DrawArrow(graphics, color, toolWindow);
        }
        private static void DrawPositionUnadjustedVector(
            Graphics graphics,
            Color color,
            PositionAdjustToolSettingBase posSetting,
            PositionAdjustToolResultBase posResult,
            WindowShape toolWindow)
        {
            WindowShape     toolWindow1 = (WindowShape)null;
            RectangleWindow rect        = toolWindow as RectangleWindow;

            if (rect != null)
            {
                toolWindow1 = (WindowShape)ToolResultRender.PositionAdjustRectangle(posSetting, posResult, rect);
            }
            CircleWindow circle = toolWindow as CircleWindow;

            if (circle != null)
            {
                toolWindow1 = (WindowShape)ToolResultRender.PositionAdjustCircle(posSetting, posResult, circle);
            }
            ToolResultRender.DrawVector(graphics, color, toolWindow1);
        }