Classe pour gérer une hiérarchie complexe de figures géométriques avec vérification d’intersections
Kotlin
Hard
classes
Tâche «Classe pour gérer une hiérarchie complexe de figures géométriques avec vérification d’intersections»
Créez des classes pour représenter des figures géométriques : Point, Circle, Rectangle. La classe Point contient les coordonnées x et y (Double). La classe Circle contient un centre (Point) et un rayon (Double). La classe Rectangle contient le coin supérieur gauche (Point) et le coin inférieur droit (Point). Implémentez dans chaque classe la méthode intersects(other: Any): Boolean, qui renvoie true si la figure intersecte une autre figure (cercle avec cercle, rectangle avec rectangle, cercle avec rectangle). Pour le cercle et le rectangle, utilisez la vérification de la distance entre le centre du cercle et le point le plus proche du rectangle. Dans main(), lisez depuis stdin le nombre de figures N (1 ≤ N ≤ 100), puis pour chaque figure une ligne : le type ("Point", "Circle", "Rectangle") et les coordonnées. Pour Point : x y. Pour Circle : x y r. Pour Rectangle : x1 y1 x2 y2. Affichez pour chaque paire de figures (i < j) le résultat de la vérification d’intersection : "YES" ou "NO" dans l’ordre croissant des paires.
Format d\ entrée
Un entier N. Ensuite N lignes, chacune contient le type de figure et ses paramètres (coordonnées Double).
Format de sortie
Pour chaque paire (i, j) avec i < j, affichez "YES" ou "NO" dans l’ordre croissant de i, puis de j.
Exemples
Exemple 1
ENTRÉE
5
1 100 100
2 200 200
3 150 300
4 300 400
5 50 1500
SORTIE
100 400 4 750 187
1500 1500 1 50 50
Exemple 2
ENTRÉE
0
SORTIE
main.kt