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:
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?
-1
A
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.
Ich habe keine Ahnung. Aber warum testest du es nicht einfach und siehst es? –
@JBNizet Wie könnte ich das testen? – RoiEX
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