Oleksy_Adam: dzięki za informację. Była o wiele pomocniejsza niż wymądrzanie matematyka. Znalazłem gdzieś trochę kodu napisanego w Delphi i przerobienie go zajęło mi 2 minuty:
import java.awt.Graphics;
import java.awt.geom.Point2D;
public class Test extends java.applet.Applet {
public void paint(Graphics g) {
double x[] = new double[3];
double y[] = new double[3];
Point2D p = new Point2D.Double(50, 50);
Point2D k = new Point2D.Double(400, 90);
double arc = Math.atan2(-k.getY() + p.getY(), k.getX() - p.getX());
double r = Math.sqrt(Math.pow(k.getX() - p.getX(), 2) + Math.pow(k.getY() - p.getY(), 2)) * 0.95;
x[0] = p.getX() + Math.round(r * Math.cos(arc + 0.015));
y[0] = p.getY() + Math.round(r * -Math.sin(arc + 0.015));
x[1] = p.getX() + Math.round(r * Math.cos(arc - 0.015));
y[1] = p.getY() + Math.round(r * -Math.sin(arc - 0.015));
x[2] = k.getX();
y[2] = k.getY();
g.drawLine((int) p.getX(), (int) p.getY(), (int) k.getX(), (int) k.getY());
g.drawLine((int) x[0], (int) y[0], (int) x[2], (int) y[2]);
g.drawLine((int) x[1], (int) y[1], (int) x[2], (int) y[2]);
}
}
Być może nie jest optymalny, ale każdy chcący go zaadoptować do swoich potrzeb powinien już wiedzieć o co biega.
Pozdro!