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.

  1. Dissenya la funció punt_interior_rect que donats un punt al pla i un rectangle ortogonal, retorni True si el punt és interior al rectangle i False altrament. 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.txt

  2. Dissenya la funció nombre_punts que 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.txt

  3. Dissenya la funció rectangle_cont que 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.txt

  4. Dissenya la funció rectangles que 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.txt

    Solució

    Disposeu de solucions al fitxer rectangles.py