كيف يمكنني تحويل JTS-Geometry إلى شكل AWT؟
سؤال
هل من الممكن تحويل أ com.vividsolutions.jts.geom.Geometry
(أو فئة فرعية منه) في فئة تنفذ java.awt.Shape
؟ما المكتبة أو الطريقة التي يمكنني استخدامها لتحقيق هذا الهدف؟
المحلول
وفق:
http://lists.jump-project.org/pipermail/jts-devel/2007-May/001954.html
هناك فئة:
com.vividsolutions.jump.workbench.ui.renderer.java2D.Java2DConverter
والتي يمكن أن تفعل ذلك؟
نصائح أخرى
ألقِ نظرة أيضًا على كاتب الشكل مقدمة من مكتبة JTS.لقد استخدمت الكود التالي الذي تم قصه لتحويل كائنات هندسة jts إلى شكل awt.
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Shape;
import javax.swing.JFrame;
import javax.swing.JPanel;
import com.vividsolutions.jts.awt.ShapeWriter;
import com.vividsolutions.jts.geom.Coordinate;
import com.vividsolutions.jts.geom.GeometryFactory;
import com.vividsolutions.jts.geom.LineString;
import com.vividsolutions.jts.geom.Polygon;
public class Paint extends JPanel{
public void paint(Graphics g) {
Coordinate[] coords = new Coordinate[] {new Coordinate(400, 0), new Coordinate(200, 200), new Coordinate(400, 400), new Coordinate(600, 200), new Coordinate(400, 0) };
Polygon polygon = new GeometryFactory().createPolygon(coords);
LineString ls = new GeometryFactory().createLineString(new Coordinate[] {new Coordinate(20, 20), new Coordinate(200, 20)});
ShapeWriter sw = new ShapeWriter();
Shape polyShape = sw.toShape(polygon);
Shape linShape = sw.toShape(ls);
((Graphics2D) g).draw(polyShape);
((Graphics2D) g).draw(linShape);
}
public static void main(String[] args) {
JFrame f = new JFrame();
f.getContentPane().add(new Paint());
f.setSize(700, 700);
f.setVisible(true);
}
}
يحرر:والنتيجة تبدو مثل هذه الصورة
لا تنتمي إلى StackOverflow