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); }