protected void drawCoil(Point a, Point b, double v1, double v2) { var coilLen = (float)Utils.Distance(a, b); if (0 == coilLen) { return; } /* draw more loops for a longer coil */ Context.LineColor = NeedsHighlight ? CustomGraphics.SelectColor : CustomGraphics.GrayColor; var loopCt = (int)Math.Ceiling(coilLen / 11); var w = coilLen / loopCt; var th = (float)(Utils.Angle(a, b) * 180 / Math.PI); var pos = new Point(); for (int loop = 0; loop != loopCt; loop++) { Utils.InterpPoint(a, b, ref pos, (loop + 0.5) / loopCt, 0); Context.DrawArc(pos, w, th, -180); } }