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