Skalierung eines Polygons ohne das es verschoben wird

  • Themenstarter Themenstarter HansWurstasdf
  • Beginndatum Beginndatum
H

HansWurstasdf

Gast
Hallo,

ich skaliere ein java.awt.Polygon. Danach ist es verschoben. Ich will es jedoch nur skalieren.
Wie kann ich die Verschiebung vermeiden?

Mit translate davor und danach. Aber welchen Punkt soll ich da wählen? Mittelpunkt des Polygons lässt sich ja nicht so einfach bestimmen (bei beliebigen geschlossenen Polygonen=

Java:
AffineTransform at = new AffineTransform();
at.scale(1.5, 1.5);
Shape s = at.createTransformedShape(polygone);
 
Also an den Mittelpunkt kommst du sehr leicht ran:
Java:
Rectangle2D b = polygone.getBounds2D();
double centerX = b.getCenterX();
double centerY = b.getCenterY();
Wenn es stattdessen der Schwerpunkt sein muss … keine Ahnung.
 
wenn man den mittelpunkt so nehmen würde ist das ja der mittelpunkt der umschließenden bounding box. und nicht der mittelpunkt des polygpns selbst. wenn darin ein unregelmässiges polygon liegt dann verzerrt es mir die skalierung ja dadurch auch...
 
Warum transformierst du nicht einfach jeden Punkt mit af?
Dafür bräuchtest du einen PathIterator, der durch alle Punkte durchläuft und jeden dann mit
Code:
af.transform(pDst, pSrc)
transformiert.
 

Zurück
Oben