Koordinaten "lokalisieren / globalisieren"?
Übersicht

PacManiBetreff: Koordinaten "lokalisieren / globalisieren"? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also entweder habe ich den "Global"-Parameter bei EntityX() etc. Befehlen nicht ganz verstanden, oder ich bin einfach zu doof (meist zweites).
Ich habe hier das Problem, dass ich hinter einem Objekt eine Wand erstellen möchte. Das würde bei Vogelperspektive ungefähr so aussehen: Code: [AUSKLAPPEN] ^
----- Wobei ^ das nach oben zeigende Objekt ist und ----- die zu erstellende Wand. Nun benötige ich die Start- und Endkoordinaten dieser Wand. Da dachte ich mir folgendes: Wenn ich doch das Koordinatensystem des Objekts verwenden kann, könnten doch folgende Anweisungen ausreichen, entsprechende Punkte zu erhalten? (pseudocode) X1 = EntityX(Objekt)-1 Z1 = EntityZ(Objekt)-1 X2 = EntityX(Objekt)+1 Z1 = EntityZ(Objekt) Aber wie kann ich EntityX und Z jetzt anweisen, das lokale Koordinatensystem des Objekts zu nutzen (damit ja auch die Drehung beachtet wird)? Kann man verstehen was ich eben geschrieben habe? Und wie kann ich die errechneten Koordinaten dann in Globale wieder umwandeln? Sonst müsste ich das ganze anders angehen, hätte auch schon eine Idee, aber das hier wäre mir lieber. |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Der Global-Parameter macht ja nur Sinn, wenn das Entity ein Parent hat, zu dem es eine relative Position einnehmen kann.
Dein Problem kann man mit sin/cos oder Vektoren lösen; du musst nur den/die Winkel bestimmen der bei dem Objekt "Hinten" angibt. Was soll das für eine Wand sein? Ein Cube, mehrere, ein Mesh? |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
PacMani |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ja, an dass mit Sin/Cos habe ich auch schon gedacht, wr derzeit nur zu Faul zur Umsetzung ![]() Müsste doch so gehen oder? Das hier hatte ich mir gedacht: ![]() Die Wand würde aus zwei Seiten bestehen (da sie ganz platt ist wie ein Blatt Papier). |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Aha! Also:
Du erstellst ein Quad, dann positionierst du es auf den Koordinaten vom Objekt, gibst ihm die gleiche Rotation und verschiebst es in Richtung -z um den gewünschten Abstand hinter das Objekt. So käme man sogar um Berechnungen herum - oder gibt es sonst noch Bedingungen? |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
PacMani |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ja, ich brauche globale XZ-Start und Endkoordinaten ![]() |
||
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
Eventuelle kannst du mit TFormPoint![]() |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die Mitte der Wand ist dann (nach obiger verschiebe-Aktion) EntityX/Z, die Eckkoordinaten ergeben sich durch den Drehwinkel, Größe der Wand und etwas sin/cos - also alles bekannte Größen.
Für ein Beispiel fehlt es mir aber gerade leider an Zeit... |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
TFormPoint wäre da nicht nur einfacher, weil du die eckpunkte aus Sicht des ^-Objekts ja kennst, sondern auch schneller, weil es intern EntityX,Y,Z,Pitch,Yaw,Roll,sin und cos ausführen kann ohne Programmsprünge zu machen. Wie enorm das schneller sein kann, als das von Hand zu berechnen zeigt dasda, wo ich versucht habe EntityDistance von Hand zu berechnen. | ||
PacMani |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Genial! TFormPoint ist genau das, was ich gesucht habe. Und klappt auch gleich beim ersten Anlauf ![]() Habe es jetzt so gelöst, für die, die es interessiert: Code: [AUSKLAPPEN] TFormPoint -1, 0, -1, Car\Entity, 0 ;Globalisierung der Start-Koordinate
Local X1# = TFormedX() Local Z1# = TFormedZ() TFormPoint 1, 0, -1, Car\Entity, 0 ;Globalisierung der End-Koordinate Local X2# = TFormedX() Local Z2# = TFormedZ() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group