Capses¶
Representarem un punt al pla en Python amb un tuple de dues components
que representen les seves coordenades x i y (reals o enters)
i un rectangle ortogonal amb un tuple de dos components: els seus
vèrtexs inferior-esquerra i superior-dret, representats com dos punts
al pla.
Dissenya la funció
punt_interior_rectque donats un punt al pla i un rectangle ortogonal, retorniTruesi el punt és interior al rectangle iFalsealtrament. Els punts a la frontera del rectangle també es consideren interiors.Desa la funció al fitxer
rectangles.py. La funció ha de passar el següent doctest:>>> punt_interior_rect ((2, 2), ((1, 1), (4, 8))) True >>> punt_interior_rect ((2, 2), ((1, 3), (4, 8))) False >>> punt_interior_rect ((1, 8), ((1, 3), (4, 8))) True
Nota
Pots descarregar el fitxer amb tests
punt_interior_rect.txtDissenya la funció
nombre_puntsque a partir d’un punt al pla i d’una llista de rectangles ortogonals, retorni el nombre de rectangles que contenen el punt.Desa la funció al mateix fitxer
rectangles.py. La funció ha de passar el següent doctest:>>> lrect = [((1, 1), (4, 8)), ((1, 3), (4, 8)), ((0, 0), (3, 4))] >>> nombre_punts ((2, 2), lrect) 2 >>> nombre_punts ((-2, -2), lrect) 0 >>> nombre_punts ((0, 1), lrect) 1
Nota
Pots descarregar el fitxer amb tests
nombre_punts.txtDissenya la funció
rectangle_contque a partir d’un punt al pla i d’una llista de rectangles ortogonals, retorni el primer rectangle de la llista que contingui el punt. Si no n’hi ha cap, la funció ha de retornar un rectangle amb els dos punts iguals al donat.Desa la funció al mateix fitxer
rectangles.py. La funció ha de passar el següent doctest:>>> lrect = [((1, 3), (4, 8)), ((1, 1), (4, 8)), ((0, 0), (3, 4))] >>> rectangle_cont ((2, 2), lrect) ((1, 1), (4, 8)) >>> rectangle_cont ((5, 6), lrect) ((5, 6), (5, 6))
Nota
Pots descarregar el fitxer amb tests
rectangle_cont.txtDissenya la funció
rectanglesque a partir d’un punt al pla i d’una llista de rectangles ortogonals, retorni un tuple amb els rectangles que contenen el punt. Suggeriment: construeix una llista de rectangles i converteix-la a tuple.Desa la funció al mateix fitxer
rectangles.py. La funció ha de passar el següent doctest:>>> lrect = [((1, 1), (4, 8)), ((1, 3), (4, 8)), ((0, 0), (3, 4))] >>> rectangles ((2, 2), lrect) (((1, 1), (4, 8)), ((0, 0), (3, 4)))
Nota
Pots descarregar el fitxer amb tests
rectangles.txtSolució
Disposeu de solucions al fitxer
rectangles.py