Wir wollen eine Klasse Rechteck entwerfen, die es erlaubt, verschiedenste Operationen für achsenorientierte Rechtecke auszuführen. Wir repräsentieren ein Rechteck durch seinen Mittelpunkt (cx , cy) und durch seine Länge l und Breite b. Wir wollen ein Rechteck verschieben und drehen können, seinen Flächeninhalt bestimmen und den Schnitt mit anderen Rechtecken berechnen können.
1. Schreiben Sie einen Konstruktor der Form __init__(self, cx, cy, l, b) und eine Memberfunktion __str__(self), die die Intervalldarstellung [ux, ox]x[uy, oy] des Rechteckes als String erzeugt.
2. Schreiben Sie eine Funktion rotiere(self), die ein um 90° um den Mittelpunkt gedrehtes Rechteck erzeugt und eine Funktion verschiebe(self, tx, ty), die ein um (tx, ty) verschobenes Rechteck erzeugt.
3. Schreiben Sie eine weitere Memberfunktion schnitt(self, other), die das Schnittrechteck zwischen den beiden Rechtecken erzeugt. Des Weiteren wird noch eine Funktion flaeche(slef) zur Berechnunf des Flächeninhalts benötigt.
Comment prefix | # |
---|---|
Given input | |
Expected output | ------------- Rechtecke ------------- [507.0|521.0] x [970.0|982.0] [-1.0|13.0] x [2.0|6.0] [1.5|14.5] x [-0.5|12.5] [-2.5|4.5] x [0.5|1.5] [-1.5|7.5] x [-2.5|6.5] [5.0|5.0] x [3.0|9.0] [-1.0|1.0] x [-2.0|2.0] [-5.0|9.0] x [0.5|1.5] [2.5|5.5] x [6.5|15.5] [-5.0|9.0] x [-4.5|10.5] [-4.5|8.5] x [8.0|18.0] [1.0|13.0] x [3.0|11.0] [-3.5|11.5] x [8.5|11.5] [-5.0|5.0] x [6.0|10.0] [1.0|13.0] x [4.5|5.5] [2.0|4.0] x [-2.0|6.0] [-3.5|5.5] x [-3.5|7.5] [2.0|8.0] x [3.5|10.5] [-1.5|13.5] x [-6.0|6.0] [7.0|13.0] x [5.5|12.5] [-4.5|8.5] x [-5.5|7.5] [1.5|10.5] x [7.5|10.5] [4.0|4.0] x [0.5|7.5] [-3.5|3.5] x [-2.5|2.5] [1.5|2.5] x [-3.5|11.5] [-6.0|8.0] x [-3.0|5.0] [-2.0|12.0] x [0.5|11.5] [5.0|5.0] x [2.5|11.5] [-2.0|2.0] x [0.0|0.0] [0.0|4.0] x [-0.5|8.5] [-1.0|3.0] x [0.5|3.5] [-5.5|9.5] x [-3.5|11.5] [8.5|19.5] x [-2.5|12.5] [-4.0|10.0] x [3.0|3.0] [8.5|17.5] x [0.0|6.0] [-1.5|5.5] x [1.5|16.5] [1.0|3.0] x [1.0|13.0] [-7.0|7.0] x [-4.0|6.0] [9.5|12.5] x [-0.5|6.5] [-5.0|7.0] x [-5.5|9.5] [3.0|3.0] x [1.0|11.0] [0.0|0.0] x [-6.0|6.0] ------------- Verschobene/ Gedrehte Rechtecke ------------- [509.3|523.3] x [971.3|983.3] [1.3|15.3] x [3.3|7.3] [3.8|16.8] x [0.8|13.8] [-0.2|6.8] x [1.8|2.8] [0.8|9.8] x [-1.2|7.8] [7.3|7.3] x [4.3|10.3] [1.3|3.3] x [-0.7|3.3] [-2.7|11.3] x [1.8|2.8] [4.8|7.8] x [7.8|16.8] [-2.7|11.3] x [-3.2|11.8] [-4.5|8.5] x [8.0|18.0] [1.0|13.0] x [3.0|11.0] [-3.5|11.5] x [8.5|11.5] [-5.0|5.0] x [6.0|10.0] [1.0|13.0] x [4.5|5.5] [2.0|4.0] x [-2.0|6.0] [-3.5|5.5] x [-3.5|7.5] [2.0|8.0] x [3.5|10.5] [-1.5|13.5] x [-6.0|6.0] [7.0|13.0] x [5.5|12.5] [-4.5|8.5] x [-5.5|7.5] [1.5|10.5] x [7.5|10.5] [4.0|4.0] x [0.5|7.5] [-3.5|3.5] x [-2.5|2.5] [1.5|2.5] x [-3.5|11.5] [-3.0|5.0] x [-6.0|8.0] [-0.5|10.5] x [-1.0|13.0] [0.5|9.5] x [7.0|7.0] [0.0|0.0] x [-2.0|2.0] [-2.5|6.5] x [2.0|6.0] [-0.5|2.5] x [0.0|4.0] [-5.5|9.5] x [-3.5|11.5] [6.5|21.5] x [-0.5|10.5] [-4.0|10.0] x [3.0|3.0] [8.5|17.5] x [0.0|6.0] [-1.5|5.5] x [1.5|16.5] [-4.0|8.0] x [6.0|8.0] [-5.0|5.0] x [-6.0|8.0] [7.5|14.5] x [1.5|4.5] [-9.5|5.5] x [-9.0|3.0] [0.0|0.0] x [-4.0|6.0] [0.0|0.0] x [-6.0|6.0] ------------- Schnitt von Rechtecke ------------- None [3.8|15.3] x [3.3|7.3] [3.8|6.8] x [1.8|2.8] [0.8|6.8] x [1.8|2.8] [7.3|7.3] x [4.3|7.8] None [1.3|3.3] x [1.8|2.8] None [4.8|7.8] x [7.8|11.8] [-2.7|8.5] x [8.0|11.8] [1.0|8.5] x [8.0|11.0] [1.0|11.5] x [8.5|11.0] [-3.5|5.0] x [8.5|10.0] None [2.0|4.0] x [4.5|5.5] [2.0|4.0] x [-2.0|6.0] [2.0|5.5] x [3.5|7.5] [2.0|8.0] x [3.5|6.0] [7.0|13.0] x [5.5|6.0] [7.0|8.5] x [5.5|7.5] [1.5|8.5] x [7.5|7.5] [4.0|4.0] x [7.5|7.5] None [1.5|2.5] x [-2.5|2.5] [1.5|2.5] x [-3.5|8.0] [-0.5|5.0] x [-1.0|8.0] [0.5|9.5] x [7.0|7.0] None [0.0|0.0] x [2.0|2.0] [-0.5|2.5] x [2.0|4.0] [-0.5|2.5] x [0.0|4.0] [6.5|9.5] x [-0.5|10.5] [6.5|10.0] x [3.0|3.0] [8.5|10.0] x [3.0|3.0] None [-1.5|5.5] x [6.0|8.0] [-4.0|5.0] x [6.0|8.0] None None [0.0|0.0] x [-4.0|3.0] [0.0|0.0] x [-4.0|6.0] ------------- Fläche der Rechtecke ------------- 168 56 169 7 81 0 8 14 27 210 130 96 45 40 12 16 99 42 180 42 169 27 0 35 15 112 154 0 0 36 12 225 165 0 54 105 24 140 21 180 0 0 |