Περισσότερο

Σενάριο επεξεργασίας QGIS: Μετακίνηση σημείων κατά καθορισμένη απόσταση και προσθήκη τμήματος

Σενάριο επεξεργασίας QGIS: Μετακίνηση σημείων κατά καθορισμένη απόσταση και προσθήκη τμήματος


Προσπαθώ να μετακινήσω σημεία (έρχονται ως WGS84, αλλά δεν είμαι σίγουρος εάν λειτουργεί με μη επεξεργασμένο CRS) από μια καθορισμένη απόσταση και συνδέω το πρωτότυπο και το νέο σημείο με ένα τμήμα γραμμής με το παρακάτω σενάριο, αλλά λαμβάνω ένα σφάλμα (ΕΠΕΞΕΡΓΑΣΙΑ: έχει διορθωθεί τώρα…):

#ERROR: Το αντικείμενο 'module' δεν έχει χαρακτηριστικό 'getobject' -> διορθωμένο σφάλμα σύνταξης! από PyQt4.QtCore εισαγωγή * από qgis.core εισαγωγή * από processing.core.VectorWriter εισαγωγή VectorWriter # ============================= ======= ## [Σενάρια χρήστη] = ομάδα ## είσοδος = διάνυσμα ## έξοδος = έξοδος διάνυσμα ## x_add = αριθμός 100 ## y_add = αριθμός 100 # =========== ========================= inputLayer = processing.getObject (input) # sebelumnya getobject () Features = processing.features (inputLayer) # sebelumnya getFeatures ( ) provider = inputLayer.dataProvider () author = VectorWriter (έξοδος, Καμία, provider.fields (), WKBLineString, inputLayer.crs ()) για ft σε χαρακτηριστικά: line_start = ft.geometry (). asPoint () line_end = QgsPoint ( line_start.x () + x_add, line_start.y () + y_add) outFeat = QgsFeature () outFeat.setGeometry (QgsGeometry.fromPolyline ([line_start, line_end])) συγγραφέας.addFeature (outFeat) del συγγραφέας

Επιπλέον, θα ήθελα να μεταφέρω σημεία καθορίζοντας την απόσταση σε μονάδες χάρτη (m), δεν είμαι σίγουρος αν αυτό συμβαίνει πραγματικά εδώ.


Η μέθοδος getobject () δεν μπορεί να βρεθεί στην επεξεργασία μονάδας επειδή η μέθοδος ονομάζεται getObject () (αναφέρατε το μεγάλο O). Δοκιμάστε το getFeatures () στην ακόλουθη γραμμή, είναι το ίδιο πρόβλημα εδώ.


Βρείτε $ (x_0, y_0) $ έτσι ώστε $ 10 = sqrt <(50 - y_0) ^ 2 + (150 - x_0) ^ 2> $ και $ (x_0, y_0) $ επίσης βρίσκεται στη γραμμή $ y = 200 - x $.

Δεδομένου ότι $ (x_0, y_0) $ βρίσκεται σε αυτήν τη γραμμή, μπορούμε να γράψουμε $ y_0 = 200 - x_0 $, έτσι ο τύπος απόστασης γίνεται:

Έτσι $ x_0 = 150 pm frac <10> < sqrt <2>> $, που οδηγεί σε:

Ελπίζω να έχω καταλάβει την ερώτησή σας.

Η γενική μορφή της γραμμής είναι $ lambda A + (1- lambda) B $. Θέλετε να βρείτε $ lambda $ έτσι ώστε το συστατικό $ y $ να είναι $ 10 $.

Η επέκταση δίνει: $ lambda A + (1- lambda) B = (150-100 lambda, 50 + 100 lambda) $. Η εξίσωση του στοιχείου $ 2 $ nd σε $ 10 $ και η επίλυση για $ lambda $ δίνει $ lambda = -0,4 $, από το οποίο παίρνουμε το σημείο $ (190,10) $.

Νομίζω ότι κατάλαβα την ερώτησή σας. Εάν θέλετε να βρείτε σημεία στη γραμμή σε μια συγκεκριμένη απόσταση $ delta $ από $ B $, τότε πρέπει να βρείτε το $ lambda $ που ικανοποιεί $ || lambda A + (1- lambda) B -B || = | λάμδα | , || A-B || = δέλτα $. Συγκεκριμένα, δίνει $ lambda = pm frac < delta> <|| A-B ||> $.

Σε αυτήν την περίπτωση, έχετε $ delta = 10 $ και $ || A-B || = 100 sqrt <2> $, έτσι $ lambda = pm frac <1> <10 sqrt <2>> $. Αντικαθιστώντας τη θετική τιμή (η οποία αντιστοιχεί στο σημείο μεταξύ $ A $ και $ B $) δίνει:

Ο γενικός τύπος για ένα σημείο $ delta $ μακριά από $ B $ θα είναι, φυσικά:


2 Απαντήσεις 2

Από την Unity 2019.3, το NavMeshAgent.remainingDistance υπολογίζεται μόνο μετά την επίτευξη της προτελευταίας γωνίας της διαδρομής και ο πράκτορας διασχίζει το τελευταίο τμήμα. Πριν από αυτό, η εναπομένουσα απόσταση θα επιστρέψει το άπειρο. Δυστυχώς, αυτό είναι χωρίς έγγραφα.

Εδώ είναι μια μέθοδος επέκτασης NavMeshAgent για να λάβετε την υπόλοιπη απόσταση ανά πάσα στιγμή ή οποιοδήποτε σημείο της διαδρομής:

Έτσι, αντί να χρησιμοποιήσετε το NavMeshAgent.remainingDistance, μπορείτε να χρησιμοποιήσετε το NavMeshAgent.GetPathRemainingDistance (). Λάβετε υπόψη ότι αυτό μπορεί να είναι ακριβό απόδοσης ανάλογα με την κατάσταση, οπότε λάβετε υπόψη αυτό κατά τη χρήση.

Όσον αφορά το δεύτερο μέρος της ερώτησής σας, θα χρειαζόμασταν περισσότερες πληροφορίες με βάση τα συμφραζόμενα της ρύθμισής σας, αλλά φαίνεται ότι η θέση στόχευσής σας μπορεί να έχει μετατόπιση προς το επάνω διάνυσμα, ενώ ο πράκτορας περιορίζεται στο επίπεδο x, z, αλλά αυτό είναι μόνο κερδοσκοπία.


4 Απαντήσεις 4

Αυτό προϋποθέτει ότι όλα είναι στην επιφάνεια της σφαίρας. Επιπλέον, υποθέτω ότι η σφαίρα έχει ακτίνα 1 $ $.

Αλλάξτε τις συντεταγμένες έτσι ώστε τα $ A $ και $ B $ να είναι και τα δύο στον ισημερινό της σφαίρας. Για οριστικότητα, μετακινήστε $ A $ σε $ (1,0,0) $ και μετακινήστε $ B $ σε $ ( cos theta, sin theta, 0) $ όπου $ theta $ είναι η γωνία μεταξύ των διανυσμάτων από το κέντρο της σφαίρας στα $ A $ και στα $ B $. Αυτός είναι ένας γραμμικός μετασχηματισμός.

Τότε αυτό που σας ενδιαφέρει είναι το γεωγραφικό πλάτος των $ X $. Εάν το $ X $ βρίσκεται στον τομέα της σφαίρας αμέσως βόρεια ή νότια της γραμμής $ AB $, τότε η απάντηση είναι μόλις $ 2 pi phi $ όπου $ phi $ είναι το γεωγραφικό πλάτος των $ X $. Εάν το $ X $ δεν βρίσκεται σε αυτόν τον τομέα, τότε η απάντηση είναι απλώς η απόσταση από $ A $ ή $ B $, όποιο από τα δύο είναι πιο κοντά.

Το ερώτημα είναι λίγο ασαφές: οι τρεις προηγούμενες απαντήσεις χρησιμοποίησαν τρεις διαφορετικές ερμηνείες. Εάν το ΕΠ θέλει την απόσταση επιφάνειας από το σημείο $ X $ έως τη γεωδαιτική γραμμή $ overleftrightarrow$, η απάντηση είναι απλή. Εάν η επιθυμητή απόσταση είναι μεταξύ $ X $ και το τμήμα $ overline$, απαιτείται περισσότερη δουλειά.

Χρησιμοποιώντας το γεωγραφικό μήκος ($ theta $) και το γεωγραφικό πλάτος ($ phi $), αφήστε $ A = ( theta_A, phi_A) $, $ B = ( theta_B, phi_B) $ και $ X = ( theta_X, phi_X) $. Τα διανύσματα κατεύθυνσης για αυτά τα σημεία είναι $ hat A = ( cos phi_A cos theta_A, cos phi_A sin theta_A, sin phi_A), $ $ hat B = ( cos phi_B cos theta_B, cos phi_B sin theta_B, sin phi_B), $ $ hat X = ( cos phi_X cos theta_X, cos phi_X sin theta_X, sin phi_X). $

Αφήστε το $ Phi $ να είναι η απόσταση στη σφαίρα της μονάδας μεταξύ $ hat X $ και της γεωδαιτικής γραμμής που περνάει από $ hat A $ και $ hat B $. Φανταστείτε το αεροπλάνο $ mathcal

$ που περνάει από $ hat A $, $ hat B $ και την προέλευση, που κόβει τη σφαίρα της μονάδας στο μισό. Στη συνέχεια, η απόσταση των Ευκλείδων $ hat X $ από το αεροπλάνο $ mathcal

$ είναι $ sin Phi $. Τώρα αφήστε το $ hat n $ να είναι ένας κανονικός φορέας μονάδας για $ mathcal

$, και έχουμε

$ hat n = hat A times hat B $ $ sin Phi = | καπέλο n cdot καπέλο X | $

Έτσι, εάν η ακτίνα της αρχικής σφαίρας είναι $ R $, τότε η απόσταση επιφάνειας από το σημείο $ X $ έως τη γεωδαιτική γραμμή $ overleftrightarrow$ είναι $ R Phi $.

Για να προσδιορίσετε την απόσταση από το τμήμα $ overline$, πρέπει να καθορίσουμε εάν το σημείο της γραμμής $ overleftrightarrow $ στο οποίο πλησιάζει το $ X $ είναι μεταξύ $ A $ και $ B $. Εάν το πλησιέστερο σημείο είναι μεταξύ $ A $ και $ B $, τότε η απόσταση επιφάνειας προς το τμήμα είναι $ R Phi $. Διαφορετικά, η απόσταση από το τμήμα είναι η απόσταση από το πλησιέστερο τελικό σημείο, το οποίο επιλύεται καλύτερα μέσω των μεθόδων που περιγράφονται στο άρθρο της Wikipedia που αναφέρεται από τον Ross Millikan. Ένας τρόπος για να κάνετε αυτόν τον προσδιορισμό είναι να βρείτε το σημείο $ hat_ < textrm> $, η προβολή του $ hat X $ στο επίπεδο $ mathcal

$,

$ καπέλο_ < textrm> = καπέλο X - ( καπέλο n cdot καπέλο X) καπέλο n, $

Έτσι καθορίζετε εάν το σημείο της γραμμής $ overleftrightarrow$ με το $ X $ που είναι πλησιέστερο είναι μεταξύ $ A $ και $ B $ μειώνεται για να προσδιοριστεί εάν το $ hat x $ είναι μεταξύ $ hat A $ και $ hat B $.

Τώρα σκεφτείτε το μέσο του $ hat A $ και $ hat B $,

Εάν η προβολή του $ hat x $ στην ακτίνα $ overrightarrowΤο $ είναι μακρύτερο από την προβολή του $ hat A $ ή $ hat B $, τότε το $ hat x $ είναι μεταξύ $ hat A $ και $ hat B $, δηλαδή εάν $ hat x cdot M & gt hat A cdot M (= hat B cdot M) $, τότε το $ hat x $ είναι μεταξύ $ hat A $ και $ hat B $, διαφορετικά όχι.


Ο αλγόριθμος MinimumBreak εφαρμόζεται σε μια σειρά στροφών δρόμου

Η χαρτογραφική γενίκευση είναι η διαδικασία παραγωγής χαρτών μικρής κλίμακας από χάρτες μεγάλης κλίμακας. Όταν το μέγεθος του χάρτη μειώνεται, τα αντικείμενα που υπάρχουν στο τελευταίο μπορούν να συγκρουστούν μεταξύ τους. Ενδέχεται να υπάρχει επικάλυψη αντικειμένων, συνενωμένοι δρόμοι ή προβλήματα αδυναμίας. Η γενίκευση λύνει αυτά τα προβλήματα μέσω αλγορίθμων. Ωστόσο, η γενίκευση δεν έχει ακόμη αυτοματοποιηθεί λόγω της έλλειψης αλγορίθμων. Σε αυτό το άρθρο, διερευνάται ένας νέος αλγόριθμος για την επεξεργασία σειράς στροφής σε έναν δρόμο για τη διόρθωση της συνένωσης. Θα διεξαχθούν δοκιμές καθώς και συγκρίσεις με υπάρχοντες αλγόριθμους. Αυτή η έρευνα έχει αποδειχθεί επωφελής για τον τομέα της χαρτογραφίας καθώς υπάρχει έλλειψη αλγορίθμων που αντιμετωπίζουν πολύπλοκες σειρές στροφών κατά την παραγωγή ενός χάρτη. Τα δείγματα που χρησιμοποιήθηκαν για τη μελέτη είναι οι άνεμοι ορεινοί δρόμοι από την Αλγερία, την Κίνα, τη Νορβηγία, την Ελβετία και τη Γαλλία.

Αυτή είναι μια προεπισκόπηση του περιεχομένου της συνδρομής, η πρόσβαση μέσω του ιδρύματός σας.


Σενάριο επεξεργασίας QGIS: Μετακινήστε σημεία κατά καθορισμένη απόσταση και προσθέστε τμήμα - Γεωγραφικά Συστήματα Πληροφοριών

Δίνουμε μια χωρικά-ποικίλη τοπική μέθοδος cokriging για μεγάλα δεδομένα πειραμάτων στο αγρόκτημα.

Η νέα μέθοδος θα μπορούσε να προτείνει θεραπεία υψηλής ανάλυσης για συγκεκριμένη περιοχή.

Ο κωδικός ανοιχτού κώδικα είναι προσβάσιμος μέσω μιας φιλικής προς το χρήστη διεπαφής του Quantum GIS.

Ολοκληρώνει τον υπολογισμό εντός εύλογου χρόνου στον κανονικό υπολογιστή των αγροτών.

Η πολλά υποσχόμενη ακρίβεια χωρικής πρόβλεψης συγκρίνεται με πέντε άλλες τεχνικές.

Ο πειραματισμός στο αγρόκτημα (OFE) υπήρξε μια μακροχρόνια μέθοδος για τους αγρότες να αξιολογούν την εναλλακτική διαχείριση σε κλίμακες που σχετίζονται με τις γεωργικές πρακτικές τους. Μέσω της χρήσης χωρικά κατανεμημένων σχεδίων, είτε απλών ταινιών είτε άλλων δοκιμών «ολόκληρου του μπλοκ», το OFE μπορεί να παρέχει πληροφορίες όπως ποια θεραπεία πρέπει να συνιστάται σε συγκεκριμένες τοποθεσίες και να συμβάλλει σημαντικά στη γεωργία ακριβείας. Ωστόσο, όταν τα σύνολα δεδομένων απόκρισης θεραπείας γίνονται μεγάλα, όπως με δεκάδες χιλιάδες παρατηρήσεις πεδίου που συλλέγονται εύκολα χρησιμοποιώντας εν κινήσει αισθητήρες, τα υπάρχοντα γεωστατιστικά συστήματα για την ανάλυση τέτοιων πειραμάτων γίνονται εντατικά υπολογιστικά, αν όχι αδύνατα. Για να επιτρέψουμε στους αγρότες, ή στους συμβούλους τους, να δημιουργήσουν χάρτες ανταπόκρισης και συστάσεων υψηλής ανάλυσης στους δικούς τους υπολογιστές εντός εύλογου χρονικού διαστήματος, σας παρουσιάζουμε ένα γρήγορο και προσαρμοστικό εργαλείο τοπικής κοκκοποίησης για μη συσσωρευμένα και μη στάσιμα δεδομένα OFE. Χρησιμοποιεί μια ακτίνα γειτονιάς που ποικίλλει χωρικά. Διαθέτει γραφικό περιβάλλον εργασίας χρήστη προσβάσιμο μέσω QGIS, ενός δωρεάν λογισμικού ανοιχτού κώδικα. Το προσαρμοστικό τοπικό cokriging παρουσιάζεται σε τρία παραδείγματα OFE. Λειτουργεί αδιακρίτως από το παγκόσμιο cokriging σε ένα μικρό σύνολο δεδομένων, αλλά για μεγάλα σύνολα δεδομένων, για τα οποία η παγκόσμια cokriging είναι ανέφικτη, προβλέπει σημαντικά με μεγαλύτερη ακρίβεια από ότι οι χωρικές splines ή οι cokriging βάσει δειγματοληψίας. Ξεπερνά τη βάση του cokriging σε έναν σταθερό αριθμό πλησιέστερων γειτόνων όταν αυτός ο σταθερός αριθμός δεν επιλέγεται προσεκτικά.


Λήψη δύο ή περισσότερων τιμών στηλών μέσω ενός Cursor SQL Server

Τα βήματα για το ερώτημα είναι:
Βήμα 1: Λάβετε latBegin και longBegin για ένα συγκεκριμένο rID από το Table Experiment
Βήμα 2: Μεταβείτε στο ExperimentDetails και εκτελέστε αυτόν τον υπολογισμό για να λάβετε τη διαφορά απόστασης για κάθε lat και long στον πίνακα Λεπτομέρειες

Βήμα 3: Λάβετε την ελάχιστη τιμή για αυτήν τη νέα σχετική στήλη στον Πίνακα λεπτομερειών
Βήμα 4: Λάβετε τις σχετικές τιμές θερμοκρασίας, κατεύθυνσης και έντασης για αυτήν την ελάχιστη τιμή και τοποθετήστε τη σε έναν νέο πίνακα (Δεν έχει γίνει ακόμη> Απαιτείται βοήθεια)
Βήμα 5: Λάβετε τον μέσο όρο θερμοκρασίας, έντασης για τα προηγούμενα 30 πόδια ή 360 ίντσες από την ελάχιστη τιμή και τοποθετήστε τον σε έναν άλλο πίνακα (στήλες: rID, latBegin, longBegin, avgTension, avgtemp Δεν έγινε ακόμη> Χρειάζεται βοήθεια)

Ο πίνακας δοκιμής μοιάζει με αυτό:

Τα δεδομένα θερμοκρασίας επαναλαμβάνονται για την τελευταία σειρά, η οποία δεν είναι σωστή

Έχω δώσει όσο περισσότερες πληροφορίες μπορούσα, αλλά αν χρειάζεστε περισσότερα παρακαλώ ρωτήστε, θα εκτιμούσα οποιαδήποτε βοήθεια, χτύπησα το μυαλό μου από χθες. Προς το παρόν προσπαθώ να φέρω temp, κατεύθυνση και ένταση εκτός από το @minV, αλλά δεν με αφήνει να το κάνω

Για το Βήμα 5: Ο υπολογισμός του δρομέα μοιάζει με αυτόν στη θεωρία για τον πίνακα Λεπτομέρειες:


6 Απαντήσεις 6

Η θέση ενός αστεριού στο διάστημα μπορεί να προσδιοριστεί από τρεις συντεταγμένες: Η σωστή άνοδό του, $ alpha $, η απόκλιση του, $ delta $, τα οποία αναφέρονται συλλογικά ως ισημερινές συντεταγμένες, και η απόστασή του από τη Γη, $ d $. Είναι πιθανώς πιο εύκολο να υπολογίσετε την απόσταση μεταξύ δύο αστεριών μετατρέποντας τις ισημερινές συντεταγμένες σε καρτεσιανές συντεταγμένες: $ x = d cos delta cos alpha $ $ y = d cos delta sin alpha $ $ z = d sin delta $ Μόλις μετατρέψετε τις ισημερινές συντεταγμένες δύο αστεριών και την απόσταση από τη Γη σε καρτεσιανές συντεταγμένες, μπορείτε απλά να χρησιμοποιήσετε το Πυθαγόρειο θεώρημα για να βρείτε τον διαχωρισμό τους.

Για να χρησιμοποιήσετε το παράδειγμά σας, ο Tau Ceti έχει σωστή άνοδο $ alpha_1 = 1: 44: 04 $, decination $ delta_1 = -15 ^ < circ> 56'15 "$ και απόσταση από το Earth $ d_1 = 11.9 κείμενο$. Ο Ross 248 έχει $ alpha_2 = 23: 41: 55 $, $ delta = + 44 ^ < circ> 10'39 "$ και $ d = 10.3 κείμενο$. Εδώ, χρησιμοποιώ ώρες, λεπτά και δευτερόλεπτα για σωστή ανάβαση και βαθμούς, τόξα και τόξα δευτερόλεπτα για απόκλιση.

Αν δεν θέλετε να κάνετε τους υπολογισμούς με το χέρι, έγραψα ένα σενάριο Python για να το κάνω χρησιμοποιώντας αστροφία: $ ^ < dagger> $

Αυτό μου λέει ότι ο Tau Ceti και ο Ross 248 απέχουν 12,2 έτη φωτός.

$ ^ < dagger> $ Δεν είναι υπέροχο, αλλά λειτουργεί, και, αυτό είναι αστρονομία. . .


3 Απαντήσεις 3

Το πρώτο μπορεί να τεμαχιστεί σε επιφάνεια XYZ. Παρατηρήστε τη χρήση των fabs (.) Στη λειτουργία βοηθού A. Η μέθοδος abs (.) Δεν περιλαμβάνεται στη λίστα των επιτρεπόμενων μεθόδων και δημιουργεί σφάλμα.

Εδώ είναι κάποιος κωδικός για το δεύτερο. Το οποίο απαιτούσε χαρτογράφηση από σφαιρικές συντεταγμένες. Εκτελέστε τον κωδικό για να δημιουργήσετε ένα πλέγμα καρδιάς. Αλλάξτε τη γραμμή h = καρδιά (1.0, 1.0, 0.2) για να δημιουργήσετε άλλες καρδιές.

το οποίο παρήγαγε αυτό το αποτέλεσμα γεμάτο σαν τη σφαίρα UV (ο κόμβος βρίσκεται στη μέση της καρδιάς

Μπορεί να αλλάξει το σχήμα τροποποιώντας τις κλίμακες στην εξίσωση της καρδιάς. Για παράδειγμα

Επεξεργασία: αυτό μπορεί τώρα να γίνει με h = καρδιά (1.0, 1.0, 0.5)

Δείγματα και των δύο χρησιμοποιούν σφαιρικούς και τοροειδείς χώρους

Ένα άλλο παρόμοιο αντικείμενο είναι το καρδιοειδές

Υπολογιστική α πραγματικός μαθηματικό σύνολο που δίνεται έμμεσα από συνάρτηση (ες) f1 (x, y, z.) = 0, f2 (x, y, z.) = 0,. είναι πολύ δύσκολο. Δείτε πώς κάνω αυτό που θέλετε:

Το θεώρημα της σιωπηρής συνάρτησης μας λέει ότι, από ένα σύνολο μέτρου 0, ένα αναλυτικό σύνολο μπορεί να παραμετροποιηθεί τοπικά από έναν αριθμό παραμέτρων ίσων με τη διάσταση του συνόλου.

Η καρδιά σας είναι μια δισδιάστατη αλγεβρική ποικιλία. Έτσι, μπορούμε να υπολογίσουμε ένα σύνολο τοπικών μπαλωμάτων, η ένωση των οποίων όταν ληφθεί μαζί με το προβληματικό σύνολο του μέτρου 0, θα περιγράψει την καρδιά.

Έγραψα ένα πρόγραμμα υπολογιστή που κάνει ακριβώς αυτό τα τελευταία χρόνια ως postdoc. Ονομάζεται Bertini_real και είναι μέρος της σειράς προϊόντων λογισμικού Bertini για υπολογιστικές λύσεις σε αλγεβρικές εξισώσεις. Ο τομέας των μαθηματικών από το οποίο προέρχεται το λογισμικό ονομάζεται Αριθμητική αλγεβρική γεωμετρία.

Πρώτον, πρέπει να πάρουμε μερικά περίπλοκα σημεία στην επιφάνεια. Γι 'αυτό, γράφουμε ένα αρχείο εισαγωγής για τον Bertini και καλούμε το bertini, χρησιμοποιώντας το tracktype 1 για να υπολογίσουμε το σύνολο μαρτύρων. Σε αυτήν την περίπτωση, περιμένουμε έξι σημεία, διότι το στοιχείο είναι μια υπερ-επιφάνεια, η οποία έχει πάντα βαθμό ίσο με τον βαθμό του πολυωνύμου.

Τέλεια, τώρα ο Μπερτίνι επιβεβαίωσε ότι η επιφάνεια είναι όντως βαθμού 6. Ωραία. Επόμενο είναι να πάρετε μόνο το πραγματικό μέρος αυτού του σύνθετου αντικειμένου. Εδώ μπαίνει ο Bertini_real. Το λογισμικό δυστυχώς εξαρτάται από το Matlab αυτή τη στιγμή, αλλά εργαζόμαστε για να το αντικαταστήσουμε με το Python, ώστε το λογισμικό να είναι εντελώς δωρεάν. Σχεδόν εκεί από τον Δεκέμβριο του 2016.

Στη συνέχεια, καλέστε το bertini_real στο ίδιο αρχείο εισαγωγής. Συμβαίνει ένα σωρό πράγματα, συμπεριλαμβανομένου του υπολογισμού αυτού του συνόλου μέτρου 0 που δεν μπορεί να παραμετροποιηθεί καλά από τις δύο παραμέτρους. Παρεμπιπτόντως, οι δύο παράμετροι που χρησιμοποιούμε για τον υπολογισμό της επιφάνειάς σας είναι τυχαίες ορθογώνιες γραμμικές προβολές των συντεταγμένων της επιφάνειας. Το σύνολο του μέτρου 0 ονομάζεται κρίσιμη καμπύλη, και σε αυτήν την περίπτωση αποτελείται από μια καμπύλη που εξαρτάται από την τυχαία προβολή, και μια μοναδική καμπύλη για τη μέση της καρδιάς, όπως φαίνεται παρακάτω:

Δεν μοιάζει πολύ με την καρδιά που ψάχνετε και αυτό συμβαίνει επειδή αυτή είναι η ακατέργαστη αποσύνθεση και πρέπει να τελειοποιηθεί. Η επίκληση του δείγματος από το Bertini_real θα το βελτιώσει, χρησιμοποιώντας τις ρυθμίσεις σας. Εδώ είναι μια παλαιότερη βελτίωση που παρήγαγα πριν από μερικούς μήνες:

Φαίνεται καλύτερα, σωστά; Χρησιμοποίησα το λογισμικό σχεδίασης στο Matlab για αυτές τις εικόνες. Τώρα, εξάγουμε την επιφάνεια σε μορφή .stl. Ίσως υπάρχουν καλύτερες μορφές. Χρησιμοποιώ .stl. Η εισαγωγή στο Blender αποκαλύπτει ότι ορισμένα πρόσωπα έχουν λανθασμένο προσανατολισμό. Ο Bertini_real δεν υπολογίζει τα κανονικά, επειδή το κανονικό είναι ακατάλληλο σε υψηλότερες διαστάσεις περιβάλλοντος από το 3. Έτσι, αφήνω το Blender να το κάνει για μένα.

Χρησιμοποιώντας τη συνάρτηση επαναπροσδιορισμού κανονικών στη λειτουργία επεξεργασίας στο Blender επιδιορθώνεται αυτό το ζήτημα. Σε αυτό το σημείο, έχουμε τώρα μια καλά προσανατολισμένη μαθηματική καρδιά στο Blender.

Το πάω ένα βήμα παραπέρα, και το εκτυπώσω 3D. Εδώ είναι ένα αποτέλεσμα:

Μπορούμε να κάνουμε αυτήν τη διαδικασία για οποιαδήποτε αλγεβρική επιφάνεια. Δεν χρειάζεται να παίζεις με τον υπολογισμό z = f (x, y), γιατί αυτό συμβαίνει σιωπηρά ως μέρος της αποσύνθεσης του Bertini_real. Το σετ στο οποίο αποτυγχάνει αυτή η παράμετρος ονομάζεται κρίσιμη καμπύλη και το ίδιο αποσυντίθεται με τη ρουτίνα αποσύνθεσης της καμπύλης.

Εάν έχετε Matlab, μπορείτε να το κάνετε μόνοι σας. Αν γνωρίζετε πώς να προγραμματίζετε στο Python, ίσως θα σας ενδιέφερε να συνεισφέρετε στο λογισμικό μου, με τη μορφή οπτικοποίησης και εξαγωγής .stl απευθείας από την Python, ώστε να μπορώ να εξαλείψω το Matlab;

Όσο πιο περίπλοκη είναι η επιφάνεια, τόσο πιο δύσκολη είναι η αποσύνθεση. Επιφάνειες όπως το Barth's Dodecahedric είναι πολύ δύσκολο να υπολογιστεί σωστά το 100%. Αλλά ωραία όπως αυτή η καρδιά, δεν είναι τόσο άσχημα.

Αν θέλετε να μάθετε περισσότερα για το λογισμικό που χρησιμοποιώ ή για τη θεωρία που κρύβεται πίσω από αυτό, προτείνω το βιβλίο που συνοδεύει το λογισμικό Bertini, που ονομάζεται Αριθμητική επίλυση πολυωνυμικών συστημάτων με τον Bertini. Δεν είναι ένα εισαγωγικό βιβλίο, αλλά σας λέει πώς να κάνετε πράγματα και έχει λειτουργήσει παραδείγματα.

Επίσης, έφτιαξα ένα βίντεο 37 λεπτών σε πραγματικό χρόνο με το οποίο πηγαίνω από εξίσωση σε εκτυπώσιμο αντικείμενο, χρησιμοποιώντας την παραπάνω διαδικασία συμπεριλαμβανομένου του Blender για ένα σημαντικό μέρος της μετα-επεξεργασίας, διαθέσιμο εδώ.

Τελικά καταλήγω στο συμπέρασμα ότι αυτή η απάντηση χρησιμοποιεί λογισμικό που δεν ανήκει στον κόσμο του Μπλέντερ, αλλά λόγω της πραγματικής πρόκλησης της απόδοσης σιωπηρών μαθηματικών αντικειμένων, μια γενική λύση σε αυτό το ερώτημα πιθανότατα δεν πρόκειται να είναι παρούσα στο Blender σύντομα.

επεξεργασία: δεδομένου ότι έχω πλέον επαρκή επανάληψη, πρόσθεσα περισσότερους συνδέσμους και αρκετές παραγράφους


Αυτή η περιοχή του χώρου καλύπτεται από ένα παχύ νεφέλωμα, αποτελούμενο από φορτισμένα σωματίδια αντιύλης.

Ίσως χρειαστούν πάρα πολλές επιστημονικές ελευθερίες για να δημιουργήσουμε ένα παρασκήνιο για το πώς έγινε αυτό, αλλά αν μπορεί να σχηματιστεί, θα μπορούσαμε (ίσως) να δούμε τα ακόλουθα αποτελέσματα:

Τα αστέρια είναι γενικά ασφαλή από τις επιπτώσεις του νεφελώματος λόγω των ενεργειακών τους ασπίδων.

Οι πλανητικές ατμόσφαιρες τείνουν να προστατεύουν αυτούς τους πλανήτες από αδέσποτα σωματίδια νεφελώματος, αλλά σε πολύ μεγάλο χρονικό διάστημα κλίμακες τα αποτελέσματα της ατμοσφαιρικής εξόντωσης θα μπορούσαν να συσσωρευτούν.

Τα σωματίδια νεφελώματος που αλληλεπιδρούν με τις πλανητικές ατμόσφαιρες (ή οποιαδήποτε άλλη ύλη στο ηλιακό σύστημα) θα εκπέμπουν πολλή ακτινοβολία, παρεμβαίνοντας σε μη θωρακισμένα ηλεκτρονικά, συμπεριλαμβανομένων αυτοματοποιημένων συστημάτων καθοδήγησης. Καθιστά επίσης δύσκολη την ανίχνευση μεγάλων αποστάσεων των πλοίων.

Οι πυραύλοι μεγάλης εμβέλειας και οι τορπίλες είναι πολύ μικροί για να φέρουν μια γεννήτρια ενεργειακής ασπίδας, οπότε δεν μπορούν να επιβιώσουν για πολύ καιρό προτού υποστούν υπερβολική ζημιά από αδέσποτα σωματίδια νεφελώματος.

Οι ακτίνες λέιζερ δεν μπορούν να διατηρήσουν τη συνοχή σε μεγάλες αποστάσεις λόγω των παρεμβολών των φορτισμένων σωματιδίων.

Η απλή απάντηση φαίνεται να είναι ότι η επίτευξη στόχων είναι σκληρός όταν είναι πολύ μακριά. Για όπλα χωρίς καθοδήγηση, αυτό αρκεί. Σε απόσταση εκατοντάδων μιλίων, ο στόχος θα εμφανιστεί ως τελεία στα συστήματα πυροβολισμού σας και θα χρειαστείτε εξαιρετική ακρίβεια από τα συστήματα παρακολούθησης όπλων για να χτυπήσετε αυτήν την τελεία με οποιοδήποτε είδος δέσμης ή βλήματος.

Αυτό σχετίζεται με τον τύπο γωνιακής διαμέτρου: α = 2αρκτάνη (ακτίνα / απόσταση)

Η γωνιακή διάμετρος είναι το εύρος των γωνιών μέσω των οποίων ένα πυροβολημένο πυροβολισμό θα προσκρούσει σε κάποιο σημείο στον κύκλο στόχου. Η μισή από αυτήν τη γωνία είναι η απαιτούμενη ανοχή για τον μηχανισμό στόχευσής σας, προκειμένου να πετύχετε τον στόχο με αξιοπιστία.

Ας συνδέσουμε μερικούς αριθμούς. Ας υποθέσουμε ότι ρίχνουμε σε ένα πλοίο περίπου το μέγεθος ενός πολεμικού ναυτικού - μήκους περίπου 160 μέτρων - σε απόσταση 100 χιλιομέτρων. Για να χτυπήσουμε αξιόπιστα σε αυτήν την απόσταση, τα συστήματα ελέγχου πυρκαγιάς μας έχουν ακρίβεια στο εύρος της αρκτάνης (0,08 / 100) = 0,046 μοίρες - περίπου 2,75 λεπτά τόξου. Όχι πολύ κακό για έναν σταθερό, σφαιρικό στόχο και υποθέτοντας ότι δεν σας πειράζει πού χτυπήσατε.

Τώρα προσπαθήστε να κάνετε αυτό το πλάνο ενώ και οι δύο κινείστε, προσπαθείτε και οι δύο να αποφύγετε την εισερχόμενη φωτιά και ούτω καθεξής. Τώρα όχι μόνο χρειάζεστε πολύ ακριβείς βάσεις όπλων, αλλά πρέπει να παρακολουθείτε γρήγορα χωρίς να χάσετε αυτήν την ακρίβεια.

Ή θα μπορούσατε να έχετε ρεαλιστικός αναρτήσεις όπλων που λειτουργούν καλά με χτύπημα στόχων με περιθώριο σφάλματος μετρημένο σε μοίρες

Οι πύραυλοι θα υποφέρουν για διαφορετικό αλλά ισοδύναμο λόγο. Η παρακολούθηση ενός κινούμενου στόχου απαιτεί καύσιμο και δεν μπορείτε να μεταφέρετε μαζί σας μια τρελή ποσότητα delta-V. Για να πετύχετε τον στόχο θα χρειαστεί να κάνετε πολλές ακριβείς αλλαγές διανύσματος κατά το χρόνο πτήσης του πυραύλου και ο στόχος θα κάνει ό, τι μπορεί για να ρίξει το σύστημα καθοδήγησής σας, συμπεριλαμβανομένης της λάμψης ECM ευρείας δέσμης όλους τους αισθητήρες σας. Είναι δύσκολο να χτυπήσεις αυτό που δεν μπορείς να δεις. εκτός κι αν έρχεστε από αρκετά κοντά ώστε να μην έχουν χρόνο να κορεστεί η σειρά αισθητήρων σας, ή θα πρέπει να βγάλετε τεράστιους θαυμαστές ECM που θα τυφλώσουν τα δικά τους καθοδηγούμενα πυρομαχικά ταυτόχρονα.

Έτσι, το κοντινό είναι ο μόνος τρόπος για να παίξετε το παιχνίδι που έχει πιθανότητες επιτυχίας. Φορτώστε τα κανόνια του λιμανιού και ετοιμαστείτε να πραγματοποιήσετε!


Δες το βίντεο: QGIS - QConsolidate Plugin - Consolidate QGIS project into one directory