2016-06-22 25 views
-1

Um ein Skalierungsproblem zu lösen, habe ich die folgende Frage:
graphics.drawLine(x1,y1,x2,y2); zeichnet eine Linie zwischen 2 Punkten.
Zeichnet es diese Linien "oben" von diesen Punkten oder ist es darunter gezeichnet?
Siehe mein Bild zur Verdeutlichung:
Example Das obere Beispiel zeigt, wie ein Oval mit graphics.fillOval(x,y,w,h); gezogen wird, wo der schwarze Punkt die x und y-Koordinate und der rote Kreis ist die eigentliche oval ...
Ist es das gleiche mit graphics.drawLine() bei Verwendung eines new BasicStroke(3.5f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND) wie im unteren Beispiel?
Oder ist die Linie tatsächlich auf die Koordinaten zentriert gezeichnet? Jede Hilfe wird geschätzt.Wie funktioniert drawLine?

+3

Ich habe keine Ahnung. Aber warum testest du es nicht einfach und siehst es? –

+0

@JBNizet Wie könnte ich das testen? – RoiEX

+0

Um das Problem besser zu verstehen, müssen Sie ein Raster zeichnen, um Pixel darzustellen, und sie dann ausfüllen, um zu zeigen, wie die geometrischen Grundelemente gerendert werden. – Arkadiy

Antwort

1

Bei drawLine() befindet sich der Anfang des Bogenabschnitts an der x-Position, daher ist Ihr Bild falsch. Die abgerundete Kappe steht links vom linken Punkt und rechts vom rechten Punkt hervor.