Kleine Frage

Posted By: Marc

Kleine Frage - 05/04/07 16:31

Hallo,

ich wollte mit dem Befehl vec_to_mesh(you.x,my,1)
den 1. Vertex meines Moddels auf die Position von you setzen.

Aber seltsamerweise verschiebt sich der Vertex nach (schräg) oben.

Was mache ich falsch?, danke.
Posted By: Shoebox

Re: Kleine Frage - 05/04/07 17:15

Ich bin mir nicht sicher aber you.x ist ja kein vektor
versuchs doch mal mit vec_to_mesh(vector(you.x,you.y,you.z),my,1)
grüßle
Posted By: Marc

Re: Kleine Frage - 05/04/07 19:53

Hmmm....gleicher Effekt, aber Danke.

Ich glaube aber doch, dass you.x ein Vektor ist, nämlich der Positionsvektor von you. (Sonst kähme ja eine Fehlermeldung mit "...Vektor expected...")

trotzdem Danke
Posted By: Anonymous

Re: Kleine Frage - 05/04/07 20:00

versuchs mal so:

you.x = variable.x;
you.y = variable.y;
you.z = variable.z;

und dann
vec_to_mesh(variable,my,1)
Posted By: RedPhoenix

Re: Kleine Frage - 05/04/07 21:35

1: you.X ist ein Vektor.

2: Aus dem Handbuch:

Quote:

vec_to_mesh (VECTOR*, ENTITY*, var number);
Führt in Echtzeit eine Mesh-Verformung eines Modells oder einer Terrain-Entity durch. vec_for_mesh setzt den angegebenen Vektor auf die Mesh-Koordinaten der angegebenen Vertexnummer; vec_to_mesh setzt den Vertex auf eine neue, vom Vektor angegebene Mesh-Position.





Und besonders wichtig:

Quote:

Es werden die Mesh-Koordinaten des derzeit aktuellen Frames benutzt. Anders als Welt-Koordinaten, die von vec_for_vertex() zurückgeliefert werden, sind dies lokale Koordinaten relativ zum Zentrum des Modells ohne Drehung und Frame-Interpolation




Also musst du erst mal die Differenz zwischen dem You Vektor und dem Modellvektor ziehen: vec_set(temp,MY.X); vec_sub(temp,You.X);

Da das Handbuch hier undeutlich ist, auf welche winkel (Modell oder Weltachse) die Relation der Meshkoordinaten basiert, musst du den Vektor evtl. noch mit vec_rotate drehen.

vec_to_mesh(temp,my,1);
Posted By: Marc

Re: Kleine Frage - 05/05/07 14:26

Hmmm... also das klapt so einigermaßen, aber nur, wenn das Moddel, dem das betreffende Vertex gehört einem tilt und einen roll von 0 hat.

Danke vielmals
bis bald
© 2024 lite-C Forums