2d-Koordinaten in 3d umwandeln?
Übersicht

sonicfireBetreff: 2d-Koordinaten in 3d umwandeln? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo liebe BBP-Community! ![]() Ich sucher seit heute vormittag nach einer Lösung für mein Problem: Ich habe eine kleine 3d-Welt erschaffen und möchte nun in dieser eine Entity mit der Maus "bewegen" können. Beispielsweise sollte die Entity in die tiefe gehen wenn ich die Maus nach oben bewege (vorrausgesetzt die Kamera guckt gerade nach vorne). usw. Nur ein Beispiel jetzt! Das Problem für mich ist hierbei, das ich nicht weiss wie ich quasi die Maus (X/Y) Koordinaten auf meine 3d-Welt "mappen" kann. Existiert dafür ein direkter Befehl? Ich bitte um Verzeihung, falls ich schlicht und ergreifen den Wald vor lauter Bäumen nicht sehe ![]() Wäre dankbar für jede Hilfe! ![]() EDIT: Kleines Bild zur Verdeutlichung: ![]() (Der flache graue Kasten ist nicht direkt unter der Maus, wo er sein sollte) |
||
![]() |
Willi die Rübe |
![]() Antworten mit Zitat ![]() |
---|---|---|
ql:CameraPick
ql:PickedX ql:PickedY ql:PickedZ Das ist alles was mir dazu einfällt ![]() |
||
Ich habe keine Lösung, aber ich bewundere das Problem.
Tehadon Q6600, MSI Neo2-FR, 4GB Ram, nVidia 7800 GTX At the Farewell Party visit: MySpace | Homepage |
![]() |
Lunatix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ne Willi
Damit kannst du die Position eines 3D Objektes in 2D koords umwandeln. Er will aber das gegenteil, von 2D in 3D. Leider weiß ich auch grad keine antwort ... ![]() |
||
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen... |
![]() |
Mr.Keks |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ne Junk
Du verwechselst das wohl mit ql:CameraProject() ![]() |
||
MrKeks.net |
![]() |
Willi die Rübe |
![]() Antworten mit Zitat ![]() |
---|---|---|
Doch Junkprogger ![]() Du hast bestimmt den OH Artikel dazu gelesen, indem steht:Zitat: Die Funktion CAMERAPICK ermittelt die Identität eines 3D-Objekts an der Koordinate X|Y Ich gebe zu die Beschreibung ist etwas verwirrend, aber sobald du das mal ausprobiert hast, weißt du, wie die Beschreibung gemeint ist.
Beispiel gefällig? ![]() Code: [AUSKLAPPEN] Graphics3D 800,600,32,2
SetBuffer BackBuffer() cam = CreateCamera() PositionEntity cam, 0,5,-10 plane=Createplane() EntityPickMode plane, 2 Cube=CreateCube() EntityColor cube, 200,0,0 Repeat p=CameraPick(cam, MouseX(), MouseY()) If p>0 Then PositionEntity cube, PickedX(), PickedY(), PickedZ() EndIf UpdateWorld RenderWorld Flip Until KeyHit(1) |
||
Ich habe keine Lösung, aber ich bewundere das Problem.
Tehadon Q6600, MSI Neo2-FR, 4GB Ram, nVidia 7800 GTX At the Farewell Party visit: MySpace | Homepage |
- Zuletzt bearbeitet von Willi die Rübe am So, Jul 16, 2006 12:19, insgesamt einmal bearbeitet
sonicfire |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Jawolla! Es funktioniert! Es funktioniert! ![]() ![]() Willi, du bist mein Retter! Danke! |
||
~sonic |
![]() |
Lunatix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Oh, verdammt^^
tatsächlich, habs verwechselt^^ war wohl ein bissl verwirrt ![]() |
||
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen... |
sonicfire |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Noch eine kleine Frage? Ich bin mal so frei:
Ich versuche momentan eine Art Grid (Raster) zu "erzeugen", damit ich quasi meine 3d-Bauteile "snappen" lassen kann. (Also nicht freies positionieren, sondern eben innerhalb eines Rasters, wie z.b. 64x64 Pixel-Raster oder sowas). Habe da intuitiv erst an sowas in der Art gedacht: --- If CameraPick(cam, MouseX()/64*64, MouseY()/64*64) PositionEntity brick, PickedX(), PickedY(), PickedZ() EndIf --- ...damit hatte ich zwar annähernd ein "Snapping", aber habe dann ganz schnell gemerkt das es SO nicht korrekt ist ![]() ![]() Kann mir da jemand einen Denkanstoß in die richtige Richtung geben? EDIT: Code-Tags weggelassen, um das mit dem 64*64 hervorzuheben |
||
![]() |
Mr.Keks |
![]() Antworten mit Zitat ![]() |
---|---|---|
If CameraPick(cam, MouseX(), MouseY())
PositionEntity brick, Int(PickedX())/64*64, Int(PickedY())/64*64, Int(PickedZ())/64*64 EndIf erscheint mir sinnvoller ^^ |
||
MrKeks.net |
sonicfire |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
![]() ![]() Danke!! Funktioniert bestens! ![]() |
||
~sonic |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group