2d koordinaten in 3d umrechnen

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

Puccini

Betreff: 2d koordinaten in 3d umrechnen

BeitragDo, Mai 24, 2007 20:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Ich hab in meinem leveleditor das problem mit dem verschieben von objekten!
!!!
Das auswählen per maus hab ich gelöst, nur wie bekomme ich es hin das wenn ich das objekt jetzt sehe es mit der maus auch einfach und gut verschieben kann!

Hab es erst so probiert

Code: [AUSKLAPPEN]
TranslateEntity objekt1,MouseSpeedX(),0,Mousespeedy()


is dumm! weil wenn ich jetzt die Camera drehe is ja die Verschiebung wieder anders und ihr wisst ja wie das dann endet...

Gibt es also eine möglichkeit meine 2d koordinaten irgendwie in den 3d raum zu projezieren??

Ich hab an sowas wie LinePick gedacht oder einem Pivot der immer richtung camera ausgerichtet is und sich stehts 10m vor ihr befindet und an dem dan das ausgewählte objekt paltziert wird!

WIe mach ich das??
-=Achtung=-
Suche Hobby-Modelliere der hin und wieder bock hat ein kleines Objekt zu erstellen. Bei Interesse PM
www.ragesoft.de
Passwortmanager: http://ragesoft.de/index.php?o...;Itemid=39

Tankbuster

BeitragDo, Mai 24, 2007 21:21
Antworten mit Zitat
Benutzer-Profile anzeigen
PickedX, PickedY, PickedZ
Forensuche anwerfen hilft oft auch total gut! Rolling Eyes
Twitter
Download Jewel Snake!
Windows|Android

Puccini

BeitragDo, Mai 24, 2007 21:26
Antworten mit Zitat
Benutzer-Profile anzeigen
die forensucher is doof! ich hab gesucht:

"2d koordinaten in 3d" -> nix brauchbares

"2d mauskoordinaten 3d" -> nix

"3d 2d koordinaten" -> nix

und noch anderes zeugs, aber alles nix!

Ich werd mal dein Tip probieren! danke!

###############################

Also das klappt ja schonmal etwas! nur nich ganz richt, also das objekt wird immer mal wieder abgewählt...

ich test mal weiter! Wink
-=Achtung=-
Suche Hobby-Modelliere der hin und wieder bock hat ein kleines Objekt zu erstellen. Bei Interesse PM
www.ragesoft.de
Passwortmanager: http://ragesoft.de/index.php?o...;Itemid=39

Arrangemonk

BeitragFr, Mai 25, 2007 18:24
Antworten mit Zitat
Benutzer-Profile anzeigen
du könntest ein system mit tasten einbauen
z.b.
dass wenn man 1 drückt verschiebst du das objekt mit mousespeed in x richtung
bei 2 in y richtung und bei 3 in z richtung
oder einfacher bei string in den verschiebungsmodus, dass da links x is unr rechs z und scrollrad y achse
auchwieder mit mousespeed
ingeneur

hectic

Sieger des IS Talentwettbewerb 2006

BeitragFr, Mai 25, 2007 18:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Man kan auch ql:TFormVector anwenden, um die X/Y/Z -Koordinate zur transferieren. Dabei muss aber der TFormVector -Wert aus der Rotation der Kamera an das Objekt skalliert aus der Mausbewegung übertragen werden.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

Puccini

BeitragFr, Mai 25, 2007 22:38
Antworten mit Zitat
Benutzer-Profile anzeigen
den letzten Post muss ich net verstehen oder Shocked

Kannst mir das etwas erklären hectic??

Klingt ja schonmal interessant! Wink mit dem PickedX() und so klappt das jetzt auhc schon super! man darf die maus nur net zu schnell bewegen, dann is das objekt wieder abgewählt ^^

Wink alles in allem geht das aber erstmal so, danke!
-=Achtung=-
Suche Hobby-Modelliere der hin und wieder bock hat ein kleines Objekt zu erstellen. Bei Interesse PM
www.ragesoft.de
Passwortmanager: http://ragesoft.de/index.php?o...;Itemid=39

hectic

Sieger des IS Talentwettbewerb 2006

BeitragFr, Mai 25, 2007 22:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du mit den oben genannten Möglichkeiten ein Objekt zu fassen bekommen hast, so gilt es nur noch zu bewegen. Wie du bereits angesprochen hast, ist die Maus X/Y -Bewegung ja nicht einfach so in eine 3D-Welt zu übertragen, da die Kamera ja auch ein Winkel in jeder seiner Achsen haben kann und somit das Bewegen davon abhängig gemacht werden 'soll'.

Eine einfache Möglichkeit hat bereits Arrangemonk erklärt.^^

Wilst du aber es so haben, dass zB Maus links/rechts sich das Objekt auch in der Achse bewegt, dass es für den Benutzer auch so als links/rechts gesehen werden kann, benötigst du den Winkel der Kamera und danach muss dann bewegt werden. Nun ist es aber so, wenn der Betrachter zB links/rechts bewegt, sich das Objet bereits in allen drei Achsen bewegen könnte, wenn der Kamerawinkel entsprechend nicht ausgerichtet ist. Um das zu berechnen geht es am einfachsten mit TFormVector. Dieser Befehl ist zB für solche Sachen gedacht. Entscheidend ist folgender Satz.
Zitat:
Beispiel: Du möchtest ein Objekt 1 Schritt nach vorne bewegen (0,0,1). Das kann man so machen: MOVEENTITY obj,0,0,1. Wie würde das aber als globale Version aussehen, da der Vektor von Objektwinkel abhängig ist. Den Vektor kann man mit diesen Befehlen transformieren (siehe Beispiel). Dann kann ein Objekt auch mit TRANSLATEENTITY obj,x,y,z bewegt werden.

MoveEntiy sollte klar sein. TranslateEntity auch. Will man nun mit TranslateEntity ein Objekt bewegen, was zB eine Bewegung wie MoveEntity ausschauen lässt, so kommt TFormVector zur Berechnung in Einsatz. Statt dessen nimmst du aber den Winkel der Kamera und bewegen tust du per TranslateEntity dein Objekt anhand der Mausposition bzw. MausSpeed.

edit1: Mit dem ''zu schnellem Bewegen und den darauffolgenden Abwählen eines Objektes'' solltest du mal versuchen, zuerst dein objekt bewegen und dann mit Pick nachschauen.^^

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group