/** * Code to paint the specific shape * * @param w2v 2D affine transform * @param g graphics context */ public void paintShape(Graphics2D g, AffineTransform w2v) { double x = startPoint.getX(); double y = startPoint.getY(); double xEnd = endPoint.getX(); double yEnd = endPoint.getY(); g.setStroke(new BasicStroke(this.getThickness(), BasicStroke.CAP_ROUND, BasicStroke.CAP_ROUND)); Point2D v0 = w2v.transform(new Point2D.Double(x, y), null); int ix = (int) v0.getX(); int iy = (int) v0.getY(); Point2D v1 = w2v.transform(new Point2D.Double(xEnd, yEnd), null); g.drawLine(ix, iy, (int) v1.getX(), (int) v1.getY()); }
/** * WhiteboardShapeLine constructor * * @param id String that uniquely identifies this WhiteboardObject. * @param t number of pixels that this object (or its border) * @param c WhiteboardShapeLine's color (or rather it's border) * @param startPoint the start coordinates of this line. * @param endPoint the end coordinates of this line. * @param v2w 2D affine transform */ public WhiteboardShapeLine( String id, int t, Color c, WhiteboardPoint startPoint, WhiteboardPoint endPoint, AffineTransform v2w) { super(id); this.setThickness(t); setColor(c); Point2D v0 = new Point2D.Double(startPoint.getX(), startPoint.getY()); Point2D w0 = v2w.transform(v0, null); this.startPoint = new WhiteboardPoint(w0.getX(), w0.getY()); Point2D v1 = new Point2D.Double(endPoint.getX(), endPoint.getY()); Point2D w1 = v2w.transform(v1, null); this.endPoint = new WhiteboardPoint(w1.getX(), w1.getY()); }