stathi02 Δημοσ. 17 Απριλίου 2011 Δημοσ. 17 Απριλίου 2011 Παιδιά καλησπέρα, θα ήθελα να κάνω ένα σχήμα όπως το παρακάτω. Για την κατασκευή αυτού του σχήματος έχω σημεία (X,Y,Z) και για κάθε σημείο αντιστοιχεί μια τιμή V από τις οποίες θέλω να υπολογιστούν οι ισοβαρείς καμπύλες (Contours). Αν έχετε κάνα tip για να το ξεκινήσω θα βοηθούσε πολύ. Ευχαριστώ πολύ
insomniaK Δημοσ. 17 Απριλίου 2011 Δημοσ. 17 Απριλίου 2011 Δεν καταλαβαίνω το σχήμα της εικόνας, αλλά αν ξεκινήσεις από κάποια εντολή των οικογενειών contour, e.g. contour3, ή surf ή mesh ή ακόμα και τη slice, και αλλάξεις το orientation των αξόνων ή της κάμερας, θα το φτιάξεις.
stathi02 Δημοσ. 17 Απριλίου 2011 Μέλος Δημοσ. 17 Απριλίου 2011 Δεν καταλαβαίνω το σχήμα της εικόνας, αλλά αν ξεκινήσεις από κάποια εντολή των οικογενειών contour, e.g. contour3, ή surf ή mesh ή ακόμα και τη slice, και αλλάξεις το orientation των αξόνων ή της κάμερας, θα το φτιάξεις. Το σχήμα είναι ένας τρισδιάστατος χώρος ο οποίος περιγράφεται από σημεία με συντεταγμένες (x,y,z). Και για κάθε σημείο υπάρχει μια τέταρτη διάσταση (η οποία θέλω να είναι οι ισοβαρείς καμπύλες). Λογικά με το contour3 γίνεται αλλά δεν τα έχω καταφέρει και έλεγα μήπως έχετε καμία ιδέα. Φαντάσου ότι έχω ένα διάνυσμα με τα Χ (x1,x2...xν), ένα διάνυσμα με τα Y (y1, y2,....yν), ένα διάνυσμα με τα z(z1,z2,...zν) και τέλος ένα τρισδιάστατο πίνακα V (Xn,Yn,Zn). To V είναι μια ιδιότητα του χώρου, πχ, πίεση, δυναμικό οτιδήποτε. Τα Χ,Υ,Ζ είναι απλά διανύσματα μήκους.
stathi02 Δημοσ. 20 Απριλίου 2011 Μέλος Δημοσ. 20 Απριλίου 2011 Προσπάθησα με την contour3 αλλά τελικά κατέληξα ότι δεν γίνεται. Μάλλον πιστεύω ότι θα πρέπει σε πρώτη φάση να σχεδιάσω ένα 3δ σχήμα (όπως της εικόνας) και μετά να κάνω ένα contour σε κάθε πλευρά του σχήματος (σε 2) που θέλω. Θα προσπαθήσω σε πρώτη φάση να φτιάξω το μπλε σχήμα και μετά θα επιστρέψω. Όποια ιδέα δεκτή. Νόμιζα οτι θα υπάρχει μια εντολή η οποία θα παίρνει τα 3 διανύσματα και τον πίνακα και θα το κάνει σε μια γραμμή αλλά δεν.. Καλημέρα σε όλους
tmjuju Δημοσ. 29 Απριλίου 2011 Δημοσ. 29 Απριλίου 2011 stathi02 εάν έβγαλες εύκολη άκρη θα ήθελα να ακούσω πως το έκανες. Εύκολη εννοώ να μη χρειάστηκες να λύσεις όλο το σύστημα γεωμετρικά πρώτα και να κάνεις rendering ουσιαστικά.
stathi02 Δημοσ. 30 Απριλίου 2011 Μέλος Δημοσ. 30 Απριλίου 2011 stathi02 εάν έβγαλες εύκολη άκρη θα ήθελα να ακούσω πως το έκανες. Εύκολη εννοώ να μη χρειάστηκες να λύσεις όλο το σύστημα γεωμετρικά πρώτα και να κάνεις rendering ουσιαστικά. Προσωρινά το έλυσα με συνδυασμό matlab και photoshop. Δημιουργώ με το contour 2D τις δυο πλευρές του σχήματος και στο photoshop χρησιμοποιώ το edit ---> transform ---> distort για να δώσω το 3D σχήμα. Τώρα προσπαθώ να έχω ισοβαρείς καμπύλες και στην επιφάνεια (και να συνεχίζουν στα πλαϊνά) αλλά δυσκολεύομαι αρκετά.
tmjuju Δημοσ. 2 Μαΐου 2011 Δημοσ. 2 Μαΐου 2011 Πάλι καλά που είναι παραλληλεπίπεδο. Παλιότερα ήθελα να κάνω κάτι αντίστοιχο σε σύνθετο σχήμα. Τα είχα παρατήσει… Καλή συνέχεια!
marios_geo Δημοσ. 3 Μαΐου 2011 Δημοσ. 3 Μαΐου 2011 Αυτό που θες λέγεται slice. Αφού κάνεις TriScatterInterp τα δεδομένα σου, δημίουργείς ένα slice σε κάθε πλευρά του κύβου. Αν δεν βγάλεις άκρη, πες μου να γράψω αναλυτικές οδηγίες.
stathi02 Δημοσ. 3 Μαΐου 2011 Μέλος Δημοσ. 3 Μαΐου 2011 Αυτό που θες λέγεται slice. Αφού κάνεις TriScatterInterp τα δεδομένα σου, δημίουργείς ένα slice σε κάθε πλευρά του κύβου. Αν δεν βγάλεις άκρη, πες μου να γράψω αναλυτικές οδηγίες. Μάριε, αν μπορείς δώσε ένα hint γιατί χάθηκε η μπάλα. Εγώ έχω ένα διάνυσμα x=0:1:100, ένα y=0:1:100, ένα z=0:1:500; και ένα διάνυσμα V που περιέχει τις τιμές της παραμέτρου που θέλω να απεικονίσω. π.χ. V(x,y,z) V(0,0,0),V(0,0,1),V(0,0,2),....... Ο συνολικός αριθμός στοιχείων του V είναι 101 επί 101 επί 501. Για κάθε συντεταγμένη χ,ψ,ζ αντιστοιχεί ένας αριθμός.
stathi02 Δημοσ. 3 Μαΐου 2011 Μέλος Δημοσ. 3 Μαΐου 2011 παιδιά τελικά το κατάφερα, χρησιμοποιώντας μόνο την εντολή slice. Επισυνάπτω κιόλας την απόδειξη .Θα προσπαθήσω να γράψω πως τα κατάφερα. Με τα διανύσματα x,y,z που αναφέρω παραπάνω, με τη χρήση της εντολής meshgrid φτιάχνω ένα grid ([xgrid,ygrid,zgrid]=meshgrid(x,y,z); Και μετά χρησιμοποιώ την εντολή slice ως εξής. slice(xgrid,ygrid,zgrid,V,xslice,yslice,zslice). Ο πινακας V πρέπει να είναι της μορφής dim(x),dim(y),dim(z) και να περιέχει τις τιμές της παραμέτρου. Τα xslicem yslice,zslice είναι που θέλω να εμφανίζονται τα επίπεδα. Ευχαριστώ πολύ!
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.