Συζήτηση
Γεια χαρά, Επισκέπτης
Όνομα χρήστη: Κωδικός: Να με θυμάσαι

ΘΕΜΑ: Σύστημα συντεταγμένων

Σύστημα συντεταγμένων 11 Χρόνια 4 Μήνες πριν #1774

  • abou
  • Το Άβαταρ του/της abou
  • Αποσυνδεμένος
  • p_____
  • Δημοσιεύσεις: 2
Γειά σας παιδιά,
εχω ένα πρόβλημα και δεν μπωρώ να το λύσω γιατι ειμαι νεος στο αθλημα :laugh: ετσι λιπών σας το παραθέτω εστω αν μπορειτε να με ξεκολίσετε.

θέλω την δημιουργία μιας κλάσεις για την αναπαράσταση ενός σημείου στην
επιφάνεια της γης σύμφωνα με τις γεωγραφικές συντεταγμένες του (γεωγραφικό πλάτος – φ και γεωγραφικό μήκος – λ).
Κάθε τέτοιο σημείο θέλω να έχει τις παρακάτω λειτουργίες:
- Εμφάνιση του φ και λ σε μοίρες, λεπτά, δευτερόλεπτα (π.χ. (10° 15΄ 30΄΄ N , 10°
15΄ 30΄΄ E), όπου Ν: North, S: South, E: East, W: West).
- Εμφάνιση του φ και λ σε δεκαδικές μοίρες (π.χ. 15,2583 N, 15,2583 E).
αυτη την μετατροπή θα το κάνω με τον τύπο
deg= μίρες + λεπτά/60 + δευτερόλεπτα/3600
- Μετακίνηση του σημείου κάθετα Η μετακίνηση δίδεται ως συνδυασμός μοιρών
και κατεύθυνσης (βόρεια ή νότια). εδώ Θα πρέπει να λαμβάνεται υπόψη η διαπέραση των πόλων.
- Μετακίνηση του σημείου οριζόντια. Η μετακίνηση δίδεται ως συνδυασμός
μοιρών και κατεύθυνσης (ανατολικά ή δυτικά). οπου θα πρέπει να λαμβάνεται υπόψη η διαπέραση του πρώτου μεσημβρινού ή του αντιποδικού του πρώτου μεσημβρινού.

αυτα τα ολίγα :) εχω βρει πως να το κανω με αλλο τροπο αλλα θελω να μαθω πως θα γινει με τις κλάσεις και τα αντικίμενα γιατι τωρα τα μαθαίνω
ελπιζω να μπορίτε να με πειτε κατι η εστω να με παραπέμψετε καπου να διαβασω. σας ευχαριστω πολύ εκ των προτέρων.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Απ: Σύστημα συντεταγμένων 11 Χρόνια 4 Μήνες πριν #1775

  • pmav99
  • Το Άβαταρ του/της pmav99
  • Αποσυνδεμένος
  • Author
  • Δημοσιεύσεις: 684
  • Ληφθείσες Ευχαριστίες 111
Ευχαρίστως να σε βοηθήσουμε αλλά πρέπει να ανεβάσεις και λίγο κώδικα... Το να λύσουμε την άσκηση σου για σένα δεν θα σε βοηθήσει. Το θέμα είναι να μάθεις και η διαδικασία του να ψάχνεις πως θα υλοποιήσεις κάτι είναι πολύ σημαντική.

Προκειμένου να κάνεις "έξυπνα" αντικείμενα θα χρειαστείς τις λεγόμενες magic methods. εδώ μπορείς να διαβάσεις για αυτές. Πχ μπορείς να χρησιμοποιήσεις την __str__(self) προκειμένου να δίνεις print(point_object) και να εκτυπώνονται οι συντεταγμένες είτε στο format του πρώτου ερωτήματος είτε του δευτερου ερωτήματος.

Για τα υπόλοιπα το μόνο που έχεις να κάνεις είναι να δημιουργήσεις μερικές μεθόδους. To ΑPI θα μπορούσε να είανι κάτι τέτοιο

point.translate_vertically(angle, orientation)
point.translate_horizontally(angle, orientation)

αυτά για την ώρα.
Καλή συνέχεια!
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
Οι ακόλουθοι χρήστες είπαν "Σε Ευχαριστώ": abou

Απ: Σύστημα συντεταγμένων 11 Χρόνια 4 Μήνες πριν #1776

  • abou
  • Το Άβαταρ του/της abou
  • Αποσυνδεμένος
  • p_____
  • Δημοσιεύσεις: 2
class coord():
    def __init__(self, dlat, milat, seclat,lat, dlon, milon, seclon, lon):
 
 
        self.dlat = dlat
        self.milat = milat
        self.seclat = seclat
        self.lat = lat
        self.dlon = dlon
        self.milon = milon
        self.seclon = seclon
        self.lon = lon
        if self.dlat > 90:
            print 'Λάθος εισαγωγή. Δώσε μίρες απο 0 εως 90'
        elif self.dlat < 0:
            print 'Λάθος εισαγωγή. Δώσε μίρες απο 0 εως 90'
 
        if self.milat > 60 :
            print 'Λάθος εισαγωγή. Δώσε Λεπτά απο 0 εως 60'
        elif self.milat < 0 :
            print 'Λάθος εισαγωγή. Δώσε Λεπτα απο 0 εως 60'
 
        if self.seclat > 60 :
            print 'Λάθος εισαγωγή. Δώσε Δευτερόλεπτα απο 0 εως 60'
        elif self.seclat < 0 :
            print 'Λάθος εισαγωγή. Δώσε Δευτερόλεπτα απο 0 εως 60'
 
        [color=#ff0000]if self.lat != "N" and "W"[/color]:
            print 'Λάθος εισαγωγή. Δώσε σημείο του ορίζοντα N ή W'
 
    def con():
        result = []
        deglat = self.dlat + (self.milat/60) + (self.seclat/3600), self.lat
        deglon = self.dlon + (self.milon/60) + (self.seclon/3600), self.lon
        result.append(deglat, deglon)
        return result
 
c1= coord(35,30,50,"N",40,50,40,"S")
print c1

Μέχρι εδώ έφτασα προς το παρών αλλά θέλω να σας ρωτήσω πρέπει να κάνω το ίδιο για το longitute όπως έκανα με το latitute??
έχω υπογραμμίσει κάτι που με βγάζει λάθος...
βοηθήστε βρε παιδιά γιατί δεν την παλεύω άλλο έχω κατά μπερδευτεί :S καθότι είμαι νέος και άπυρος :P
Τελευταία διόρθωση: 11 Χρόνια 4 Μήνες πριν από abou.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Απ: Σύστημα συντεταγμένων 11 Χρόνια 4 Μήνες πριν #1777

  • pmav99
  • Το Άβαταρ του/της pmav99
  • Αποσυνδεμένος
  • Author
  • Δημοσιεύσεις: 684
  • Ληφθείσες Ευχαριστίες 111
# PEP8 suggests that class names use CamelCase.
class Coord(object):
    def __init__(self, dlat, milat, seclat,lat, dlon, milon, seclon, lon):
 
        # Data validation.
        # You should probably use try... except blocks 
        # and raise TypeError/ValueError as appropriate
        # but assertions will do fine for now.
        # Note: The error messages should be more descriptive.
        assert 0 < dlat < 90, 'Λάθος εισαγωγή. Δώσε μοίρες απο 0 εως 90.'
        assert 0 < milat < 60, 'Λάθος εισαγωγή. Δώσε λεπτά απο 0 εως 60.'
        assert 0 < seclat < 60, 'Λάθος εισαγωγή. Δώσε δευτερόλεπτα απο 0 εως 60.'
        assert lat in ("N", "W"), 'Λάθος εισαγωγή. Δώσε σημείο του ορίζοντα N ή W.'
 
        self.dlat = dlat
        self.milat = milat
        self.seclat = seclat
        self.lat = lat
        self.dlon = dlon
        self.milon = milon
        self.seclon = seclon
        self.lon = lon
 
        # calculations
        self.deglat = dlat + (milat / 60) + (seclat / 3600)
        self.deglon = dlon + (milon / 60) + (seclon / 3600)
 
    def __repr__(self):
        return "<Latitude %f %s, Longitute %f %s" % (self.deglat, self.lat, self.deglon, self.lon)
 
c1 = Coord(35,30,50,"N",40,50,40,"S")
print(c1)

Για δοκίμασε αυτό. Όρισε την κλάση με και χωρίς την μέθοδο __repr__() για να δεις τι κάνει. Αφού καταλάβεις τι κάνει άλλαξε το format της ώστε να εκτυπώνει αυτό που θέλεις.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
Συντονιστές: pmav99
Χρόνος δημιουργίας σελίδας: 0.603 δευτερόλεπτα

Μοιράσου το!

Powered by CoalaWeb

Λίστα Ταχυδρομείου