nik324 Δημοσ. 10 Ιουνίου 2015 Δημοσ. 10 Ιουνίου 2015 Αν έχω δύο σημεία α(α1,α2,α3) και β(β1,β2,β3) πάνω στα οποία κινείται ένα vertex. Χρησιμοποιώντας Linear Interpolation, με ποιον τρόπο μπορώ να υπολογίσω τις συντεταγμένες του χαρακτήρα στο μέσον αβ?
Technology fan Δημοσ. 10 Ιουνίου 2015 Δημοσ. 10 Ιουνίου 2015 Εφόσον λες στο μέσον θεωρώ οτι είναι αυτονόητο... c( (a1+b1) /2, (a2+b2) /2, (a3+b3) /2) εκτός αν δεν το κατάλαβα καλά γιατί δεν κατανοώ τι σημαίνει κινείται ένα vertex...
nplatis Δημοσ. 11 Ιουνίου 2015 Δημοσ. 11 Ιουνίου 2015 Σωστό είναι. Ο γενικός τύπος της γραμμικής παρεμβολής είναι P(t) = (1-t)a + t b όπου t η «απόσταση» σε κλίμακα 0 - 1 από το a. [Μου αρέσει πάντως ο τίτλος «Θεωρητική ερώτηση» ]
nik324 Δημοσ. 11 Ιουνίου 2015 Μέλος Δημοσ. 11 Ιουνίου 2015 Δηλαδή η απάντηση είναι το Mindpoint = ( (a1+b1) /2, (a2+b2) /2, (a3+b3) /2) ; Δηλαδή αυτό θεωρείται Linear Intrpolation;
AlexHello Δημοσ. 11 Ιουνίου 2015 Δημοσ. 11 Ιουνίου 2015 Και απο το βιβλιο του Jason Gregory (Game Engine Architecture) κεφαλαιο 4.2.5 L = LERP(A, B, β) = (1 - β)Α + βΒ = [ (1 - β)Αχ + βΒχ, (1 - β)Αy + βΒy, (1 - β)Az + βΒz]. Για τρισδιαστατα διανυσματα και σημεια. Και η γεομετρικη εξηγηση στα αγγλικα: Geometrically, L = LERP(A, B, β) is the position vector of a point that lies β percent of the way along the line segment from point A to point B, as shown in Figure 4.15. Mathematically, the LERP function is just a weighted average of the two input vectors, with weights (1 – β) and β, respectively. Notice that the weights always add to 1, which is a general requirement for any weighted average . 1
georgemarios Δημοσ. 17 Ιουνίου 2015 Δημοσ. 17 Ιουνίου 2015 To διανυσμα μεταξυ 2 σημειων Α και Β ειναι το ΑΒ = (Β.x-A.x), (B.y-A.y), (B.z-A.z) Το μέσο αυτου του διανυσματος εχει ολα του τα στοιχεια στο μισο, ειναι δηλαδη το midΑΒ = (Β.x-A.x) / 2, (B.y-A.y) / 2, (B.z-A.z) / 2 Αν ηθελες το πρωτο 4ο του διασυσματος θα ηταν ολα τα στοιχεια δια 4 Και γενικα για οποιοδηποτε παραγοντα (factor) f, μπορεις να τον πολλαπλασιασεις (ή διαιρεσεις αναλογα πως το βλεπεις) με τα στοιχεια του διανυσματος, αν θες πχ το 15%, θα εχεις το διανυσμα (Β.x-A.x)*(15/100) , (B.y-A.y) * (15/100), (B.z-A.z) *(15/100) O γενικος σου τυπος λοιπον ειναι ΑΒf = (Β.x-A.x)*f , (B.y-A.y) * f, (B.z-A.z) * f Τωρα προσεξε Αυτο το διανυσμα βρισκεται σε σχεση με την αρχη των αξόνων (είναι σε local space ας πουμε) Για να το βαλεις στο χώρο του κόσμου, σε σχεση δηλαδη με τα υπολοιπα διανυσματα, το βαζεις σε σχέση με το 1ο διανυσμα (το Α), δηλαδη του το προσθετεις. Αρα A.x +ΑΒf , A.y + ΑΒf.y , A.z + ABf.z που μεταφραζεται σε A.x +(Β.x-A.x)*f , A.y + (B.y-A.y) * f , A.z + (B.z-A.z) * f που απλοποιειται σε (1 - f) * Ax + Bx * f, (1 - f) * Ay + By * f, (1 - f) * Az + Bz * f και ακομα πιο απλα (1 -f) A + f B Ελπιζω να μη σου τα εκανα περισσοτερο κουβαρι....
mmpampiss Δημοσ. 18 Ιουνίου 2015 Δημοσ. 18 Ιουνίου 2015 Δηλαδή η απάντηση είναι το Mindpoint = ( (a1+b1) /2, (a2+b2) /2, (a3+b3) /2) ; Δηλαδή αυτό θεωρείται Linear Intrpolation; Ναι αυτό είναι το Midpoint. Πάντως αυτό δεν θεωρείται Linear Interpolation. Είναι απλά μια γεωμετρική σχέση. Αντιθέτως, η γραμμική παρεμβολή δεν έχει να κάνει με Γεωμετρία. Γενικά, ο όρος χρησιμοποιείται για σημεία που βρίσκονται στο ίδιο επίπεδο. Δεν ξέρω αν στα graphics χρησιμοποιείται και για χώρους με διάσταση μεγαλύτερη του 2. Διάβασε στο Wikipedia περισσότερα για τη γραμμική παρεμβολή.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα