public void Initialize(float radius, float offset) { Radius = radius; HitOffset = offset; float sx = Start.X; float sy = Start.Y; float ex = End.X; float ey = End.Y; // start point bounds StartBounds = new RectF( sx - radius - offset, sy - radius - offset, sx + radius + offset, sy + radius + offset); // end point bounds EndBounds = new RectF( ex - radius - offset, ey - radius - offset, ex + radius + offset, ey + radius + offset); // wire bounds int ps = 4; float[] px = new float[ps]; float[] py = new float[ps]; WireBounds = new PolygonF(px, py, ps); UpdateWireBounds(sx, sy, ex, ey); }
private void DrawPolygon(Canvas canvas, Paint paint, PolygonF poly) { int sides = poly.Sides; float x1, y1, x2, y2; int i, j = 0; for (i = 0, j = sides - 1; i < sides; j = i++) { x1 = poly.GetX(i); y1 = poly.GetY(i); x2 = poly.GetX(j); y2 = poly.GetY(j); canvas.DrawLine(x1, y1, x2, y2, paint); } }