Three.js Wie bekomme ich die Position eines Gitters?

8

Mit dem folgenden Code wird die Position eines Netzes als (0, 0, 0) zurückgegeben, ist es aber nicht. Also wird der Positioin-Vektor nach dem Renderprozess berechnet?

%Vor%

objMesh wird aus objfile erstellt, es wird der Szene korrekt hinzugefügt und der Schwerpunkt ist ungefähr (-8, 3, 0) aber der Positionsvektor von objMesh ist (0, 0, 0) müssen wir zuerst automatisch etwas berechnen oder sollte ich es manuell aus den geometrischen Scheitelpunkten des Netzes berechnen?

http://81.214.75.32:8181/admin ist die URL

Die Seite ist auf Türkisch, also werde ich die UI-Elemente übersetzen

In der Site gibt es den Menüpunkt "Dosya" Öffne den Menüpunkt und wähle "Proje Aç" Ein Dialogfeld wird angezeigt In diesem Dialog wählen Sie MUTFAK_1 Die Szene wird angezeigt In dieser Szene ist jede Mesh-Position (0, 0, 0) Ist das möglich?)

    
Tezcan 08.01.2013, 09:15
quelle

5 Antworten

4

Ja. nach einigem reden mit mrdoob wurde mir klar, dass die position von objekten lokal ist. Meine Situation bestand darin, den Mittelpunkt meines Gitters unter Berücksichtigung der Scheitelpunkte zu finden. Unten ist der Code, um den Schwerpunkt zu erhalten, der aus einer Antwort # 447 ( Ссылка ) kam

%Vor%

Jetzt haben wir den Schwerpunkt der Geometrie ...

Aktualisierung Laut Ссылка wurde die .addSelf in .add nach r55

umbenannt     
Tezcan 09.01.2013, 09:27
quelle
20

object.position ist immer lokal für das Objekt. Wenn Sie die Position im Weltbereich erhalten möchten, müssen Sie sie von object.matrixWorld beziehen.

Versuchen Sie es mit:

%Vor%

r58

Aktualisierung:

Die Funktion getPositionFromMatrix() wurde in setFromMatrixPosition() umbenannt.

    
mrdoob 08.01.2013 13:44
quelle
11

Um herauszufinden, wo im Welt-Raum der geometrische Schwerpunkt liegt, versuchen Sie Folgendes:

%Vor%

r58

    
mrdoob 08.01.2013 22:46
quelle
2
%Vor%     
Gero3 08.01.2013 10:01
quelle
0

Nach diesem Post liegt der Schwerpunkt C für a Mesh kann von

gefunden werden

C = [Summe aller (A * R)] / [Summe aller A]
A = (Fläche eines Gesichts * 2)
R = Flächenschwerpunkt = Durchschnitt der Ecken, die das Gesicht bilden.

und hier ist der Code in three.js

%Vor%     
jimver04 12.02.2016 11:47
quelle

Tags und Links