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.