Classe Cercle¶
Utilitzeu el mòdul punt2D [1] dissenyat a l’exercici
Classe Punt2D per dissenyar la classe
Cercle següent. Deseu-la al fitxer cercle.py.
- class cercle.Cercle(ctr, rd)¶
Retorna un nou cercle tal que el centre és una instància a la classe
Punt2Dque té com a coordenades els components de la tupla ctr i el radi és rd.Atributs:
- radi¶
Radi del cercle
Mètodes:
- conté_punt2D(p)¶
Retorna True si el punt p és dins del cercle i False en cas contrari.
- intersecció_cercle(c)¶
Retorna un string que indiqui la posició relativa del cercle c respecte al cercle. El string pot tenir un del següents valors: “disjunts” si els dos cercles són disjunts, “intersecants” si intersequen, “conté” si c està totalment contingut pel cercle i “contingut” si c conté el cercle.
Aquesta classe ha de suportar l’operació següent:
Operació
Resultat
c1 == c2
retorna True si els centres de c1 i c2 coindideixen i els seus radis són iguals
La classe Cercle també suporta la funció str
que retorna un string en format: Cercle(Punt2D(xc, yc), r) on xc i
yc són les coordenades del centre del cercle i r el seu radi.
Observacions
En dissenyar el mètode __init__, haureu de vigilar que el paràmetre que rep és una tupla. Per tant, dins d’aquest mètode, cal crear la instància a
Punt2Dque representa el centre.Per tal que la comparació entre cercles tingui el comportament esperat, haureu d’implementar el mètode __eq__. Observeu que aquest mètode ha estat implementat també en la classe
Punt2Di que per tant podeu utilitzar l’operador == per comparar dos punts.Per a que la funció
strproporcioni la funcionalitat desitjada, haureu de dissenyar el mètode __str__.
Disposeu d’aquest joc de proves al fitxer cercle.txt.
Solució
Disposeu d’una solució al fitxer cercle.py.
Notes