# -*- coding: utf-8 -*- ####ID 24-point-plane-1 #### Άσκηση: Γράψτε μια class Point και μια class Plane τα οποία σκοπό έχουν να παραστήσουν ένα σημείο κι ένα επίπεδο #### στις 3 διαστάσεις. Σε αυτή την άσκηση (η οποία συνεχίζεται στις επόμενες δύο) θα πρέπει να ορίσετε για τις δύο class #### τις μεθόδους (__init__, για την class Point, και __init__ και contains για την class Plane) που φαίνονται παρακάτω #### οι οποίες θα πρέπει να κάνουν αυτό που περιγράφεται παρακάτω. #### #### Γράφετε τον κώδικά σας αποκλειστικά ανάμεσα στις γραμμές START και STOP παρακάτω. #### Δεν πρέπει να πειράξετε καθόλου τις υπόλοιπες γραμμές #### #### Για να τρέξετε το πρόγραμμά σας (αποθηκευμένο στο αρχείο user.py) δίνετε την εντολή #### #### python user.py import math #### Απαιτήσεις: Περιγράφονται παρακάτω. #### #### Μην αλλάξετε ό,τι είναι από τη γραμμή START και πάνω #### #### ΔΕΝ ΕΠΙΤΡΕΠΟΝΤΑΙ εντολές print ή input στο πρόγραμμά σας #### ####START Από δω και κάτω γράφετε το πρόγραμμά σας.---------------------------------------------------------------- class Point: # Εδώ ορίζεται το class Point def __str__(self): # Μη πειράξετε αυτή τη μέθοδο """ Επιστρέφει την περιγραφή του αντικειμένου σε μορφή string. Αυτό είναι που τυπώνεται αν καλέσουμε τη συνάρτηση print για αυτό το αντικείμενο """ return '({x}, {y}, {z})'.format(x=self.x, y=self.y, z=self.z) def __init__(self, x=0, y=0, z=0): # Γράψτε αυτή τη μέθοδο ποη δημιουργεί ένα νέο σημείο. Το σημείο αυτό θα πρέπει να έχει # τα πεδία (attributes) x, y και z στα οποία αποθηκεύονται οι συντεταγμένες του. """ Δημιουργούμε σημείο με συντεταγμένες x, y, z """ class Plane: def __str__(self): # Μη πειράξετε αυτή τη μέθοδο """ Επιστρέφει την περιγραφή του αντικειμένου σε μορφή string. Αυτό είναι που τυπώνεται αν καλέσουμε τη συνάρτηση print για αυτό το αντικείμενο """ return '[Plane with equation {A}x+{B}y+{C}z={D}]'.format(A=self.A, B=self.B, C=self.C, D=self.D) def __init__(self, A, B, C, D): # Γράψτε αυτή τη μέθοδο που δημιουργεί ένα νέο επίπεδο με εξίσωση Ax+By+Cz=D. # Το επίπεδο αυτό θα πρέπει να έχει τα πεδία (attributes) A, B, C και D, στα οποία # αποθηκεύονται οι συντελεστές της εξίσωσης. """ Δημιουργούμε επίπεδο με εξίσωση Ax+By+Cz=D """ def contains(self, p): # Γράψτε αυτή τη μέθοδο. Δείτε παρακάτω μετά από τη γραμμή STOP πώς αυτή πρέπει να καλείται. """ Αυτή η μέθοδος πρέπει να επιστρέφει True ή False ανάλογα με το αν το σημείο p (που είναι τύπου class Point) περιέχεται στο επίπεδο """ ####STOP Μην αλλάξετε ό,τι είναι από τη γραμμή αυτή και κάτω-------------------------------------------------------- point1 = Point(0.1, 0.2, -1) # Ορίζουμε ένα σημείο plane1 = Plane(1, 1, 2, -1.7) # Ορίζουμε ένα επίπεδο plane2 = Plane(1, 1, 1, 3) # και άλλο ένα επίπεδο for pl in [plane1, plane2]: # ελέγχουμε αν το σημείο μας ανήκει στα δύο επίπεδα που ορίσαμε if pl.contains(point1): print pl, "contains", point1 else: print pl, "does not contain", point1