In deze oefening programmeren we de klasse Driehoek
, waabij elk object van deze
klasse een driehoek in het $$(x,y)$$-vlak voorstelt. Per driehoek stockeer je dan ook 6 reële getallen,
namelijk de $$(x, y)$$-coördinaten van de hoekpunten $$A$$, $$B$$ en $$C$$.
Programmeer het onderstaande:
__str__()
-methode die als gedaante oplevert : $$[(x_A,y_A),(x_B,y_B),(x_C,y_C)]$$.
Dit formaat heeft dus geen spaties. Gebruik voor de reële getallen het formaat %.2f
, waarbij je
dus slechts 2 decimalen weergeeft !
__repr__()
-methode
*
: deze wordt gevolgd door hoek $$\theta$$ in radiaal (reëel getal). Het resultaat is een nieuwe driehoek
die geroteerd is over een hoek $$\theta$$. Hiertoe roteer je elk hoekpunt van de originele driehoek
gebruik makend van de rotatie-matrix $$\mathbf{R}$$:*
==
levert True
indien de 6 coördinaatgetallen gelijk zijn voor de twee beschoude driehoeken,
en anders False. Gebruik voor het testen op gelijkheid de functie np.allclose()
, zonder defaults aan
te passen.
d = Driehoek((1.0, 2.0), (3.0, 4.0), (5.0, 6.0)) print(d) -> [(1.00,2.00),(3.00,4.00),(5.00,6.00)] print(eval(repr(d)) == d) -> True print(d * (math.pi/2.0)) -> [(-2.00,1.00),(-4.00,3.00),(-6.00,5.00)] print(math.pi/2.0 *d) -> [(-2.00,1.00),(-4.00,3.00),(-6.00,5.00)] d *= math.pi/2.0 print(d) -> [(-2.00,1.00),(-4.00,3.00),(-6.00,5.00)]