Transformacions geomètriques

En el fitxer punt2DTG.py dissenyeu la classe Punt2DTG, especificada a continuació, que hereta de la classe Punt2D i l’estén amb tres mètodes que permeten aplicar transformacions geomètriques a un punt al pla: la translació, la rotació i l”escalat. Aquesta classe també ha de sobreescriure la funció str, tal com s’indica.

class Punt2DTG(x=0, y=0)

Mètodes

translacio(dx, dy)

Aplica al punt una translació de (dx, dy)

escalat(centre, sc=1)

Aplica al punt un escalat de sc centrat respecte a centre

rotacio(centre, angle=0.0)

Aplica al punt una rotació de angle respecte a centre. angle està expressat en radiants.

La classe suporta, a més, la funció str que retorna un string de format 'Punt2D(coordx, coordy)', on coordx i coordy són valors reals arrodonits a un decimal.

Per exemple:

>>> from punt2DTG import Punt2DTG
>>> from punt2D import Punt2D
>>> import math

>>> t1 = Punt2DTG(1, 4)
>>> t1.translacio(4, 5)
>>> print(t1)
Punt2D(5.0, 9.0)
>>> t1.translacio(2.2, 2.1)
>>> print(t1)
Punt2D(7.2, 11.1)
>>> t1 = Punt2DTG(1, 4)
>>> t1.escalat(Punt2D(0, 0), 1.5)
>>> print(t1)
Punt2D(1.5, 6.0)
>>> p1 =  Punt2DTG(3, 0)
>>> c1 =  Punt2DTG(1, 1)
>>> p1.rotacio(c1, math.pi)
>>> print(p1)
Punt2D(-1.0, 2.0)

Disposeu de jocs de prova de l’exercici al fitxer test-punt2DTG.txt.

Disposeu d’una solució a punt2DTG.py.