2017-08-10 4 views
-1

Ich verwende die java.awt.Rectangle Klasse und die Schnittpunktmethode.So erhalten Sie einzelne Zahlen von Rechteckschnittpunkt

Rectangle rect1 = new Rectangle(1, 2, 3, 4); 
Rectangle rect2 = new Rectangle(2, 3, 4, 5); 
Rectangle intersection = rect1.intersection(rect2); 
System.out.println(intersection); 

Die Ausgabe lautet:

java.awt.Rectangle[x=2,y=3,width=2,height=3] 

Wie kann ich jede einzelne Nummer? B. die Antworten den Variablen x = hello oder width = hi zuweisen. Ich möchte den Ausgang zu formatieren:

Intersection: (2.0, 3.0, 2.0, 3.0) 
+0

Sie die [Dokumentation] überprüfen Hat (https://docs.oracle.com/javase/8/docs/api/java/awt/Rectangle.html)? – shmosel

+0

Ich habe die Antwort durch herumspielen .. ist es 'intersection.width' aber, wie Sie so' Rectangle' konvertieren akzeptiert Float. Dokumentation sagte 'Rectangle (int, int, int, int)'. – futilecheese28

+0

Ja, hast du überhaupt versucht, die Dokumentation zu lesen? Es gibt Methoden getX, getY, getWidth und getHeight. – ivange94

Antwort

0

Ist das nur über die Fomtierung? Sie können eine einfache Funktion schreiben, die ein Rectangle-Objekt übernehmen würde und die gewünschte Zeichenfolge zurück, das heißt:

public String formatRectangleOutput(Rectangle rectangle) { 
    String base = "Intersection (%.2f, %.2f, %.2f, %.2f)"; 
    return String.format(base, rectangle.getX(), rectangle.getY(), rectangle.getHeight(), rectangle.getWidth()); 
} 

dann es Ihnen gefällt nennen könnte:

 System.out.println(formatRectangleOutput(intersection)); 

Um jede einzelne Nummer erhalten Sie nur so brauchen -called getters welche rectangle.getX() oder rectangle.getY()

+0

Danke! Aber gibt es eine Möglichkeit, dass "Rechteck" gebrochene Zahlen akzeptiert? Ich weiß, dass ihr Standard Int akzeptieren soll, aber ich brauche meine Eingaben, um float zu sein. Ich bekomme diesen Fehler, wenn ich versuche, die Variablen (in float) zu Rectangle-Klasse zu verwenden: 'inkompatible Typen: mögliche verlustreiche Konvertierung von Float zu Int' – futilecheese28

+0

Wenn ich nicht falsch bin, diese Ints repräsentieren Pixel. Was ist der Punkt, um etwas in einem halben Pixel zu zeichnen? – Peter777

+0

Tut mir leid, das ist Hausaufgaben. Ich werde sie einfach in Ints verwandeln und hoffentlich überprüft mein Professor meine Codes nicht. Vielen Dank! – futilecheese28

Verwandte Themen