3D -> 2D 2D -> 3D Koordinaten Umwandlung

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

 

fliege

Betreff: 3D -> 2D 2D -> 3D Koordinaten Umwandlung

BeitragSa, Dez 11, 2004 22:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie kann man 3D in 2D Koordinaten umwandeln und wie kann man 2D Koordinaten in 3D Koordinaten umwandeln, wenn die z-Koordinate bereitz gegeben ist. Ich will zum Beispiel, das ein Cube meiner Maus folgt, oder wenn ich mit der maus auf einen zweiten stehenden cube gehe und klicke, das irgendetwas passiert.
Ich hoffe, ihr habt das Beispiel verstanden und könnt mir schnell helfen! Wenn es soetwas schon BBintern gibt, dann bitte ich um die namen der Befehle, denn dann kann ich selber nachschauen.
Fliege
 

fliege

BeitragSa, Dez 11, 2004 23:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Bitte helft mir doch! Ich habe heute eine Lange nacht vor mir Smile

Sorry für doppelpost aber ehrlich.....BITTE

Fliege

BladeRunner

Moderator

BeitragSa, Dez 11, 2004 23:38
Antworten mit Zitat
Benutzer-Profile anzeigen
OnlineHilfe > 3D > Pick > alle durchlesen.

Edit:
Und umgekehrt: Cameraproject. Hilfe dazu in der Hilfe. wo sonst.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

fliege

BeitragSa, Dez 11, 2004 23:42
Antworten mit Zitat
Benutzer-Profile anzeigen
jedoch geben die Pick funktionen nur ein gefundenes nächstliegendes Entity zurück, oder?

Fliege

Wild-Storm

BeitragSa, Dez 11, 2004 23:42
Antworten mit Zitat
Benutzer-Profile anzeigen
fliege hat Folgendes geschrieben:
Bitte helft mir doch! Ich habe heute eine Lange nacht vor mir Smile

Sorry für doppelpost aber ehrlich.....BITTE

Fliege


mein gott, es ist grad mal ne halbe stunde oder so vorbei und schon maulst du hier rum......
Visit http://www.next-dimension.org
-------------------------------------------------
Freeware Modelle, Texturen & Sounds:
http://www.blitzforum.de/forum...hp?t=12875

BladeRunner

Moderator

BeitragSa, Dez 11, 2004 23:44
Antworten mit Zitat
Benutzer-Profile anzeigen
tun sie. aber wenn du etwas mit der Maus bewegen willst sollte es ja "sichtbar" sein, also auch vom Camerastandort das nächste objekt.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

fliege

BeitragSa, Dez 11, 2004 23:47
Antworten mit Zitat
Benutzer-Profile anzeigen
aber wie lasse ich den cube dann der Maus folgen?

Fliege

BladeRunner

Moderator

BeitragSa, Dez 11, 2004 23:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich denke du hast die ganze Nacht Zeit ? Viel Spass beim Probieren...

Die genannten Befehle sollten eigentlich reichen um jedwede Interaktion zu realisieren.
Entwickel ein Konzept und setz es in Code um. Wenn der Code nicht richtig läuft poste ihn, dann können wir nach Fehlern Ausschau halten. Aber die Vorarbeit wirst Du schon selber leisten müssen. Liess dir die Doku genau durch und überleg dir wie du die Befehle nbenutzen könntest.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

fliege

BeitragSo, Dez 12, 2004 0:11
Antworten mit Zitat
Benutzer-Profile anzeigen
das Problem ist ab 0:00 kann ich nicht mehr ins Netz, da bin ich eh auf mich alleine getsellt, also bitte schreibt mir nur diesen einen Code. Den Rest schreibe ich eh selbst, ist ja nicht so, das ich alles vorgekaut haben möchte!
Fliege

DA

BeitragSo, Dez 12, 2004 0:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Moin,

Dann must du halt mal warten!
Programmieren ist nicht so ein klaks!
Du must auch mal selber ausprobieren und nicht nach jeder 2 Minute wieder ins Forum zu schreiben.

Thx
DarkAngel
Deutscher Blitz Basic Chat
 

fliege

BeitragSo, Dez 12, 2004 0:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich versuche auch soviel wie möglich auch selbst zu machen, oder suche zuerst und weis auch selbst, das programmieren ein klaks ist. Nun will ich aber nicht wirklich an so einer Frage scheietern, bitte lasst den Tread nicht untergehen, ich werde es trotzdem mal selbst versuchen, ihr habt ja recht!

Danke, vielleicht habe ich das wieder gebraucht, wieder einmal so ein paar auf die Löffel!
Danke!
Ich schreibe euch wieder, falls es Probleme gibt.

Fliege

BladeRunner

Moderator

BeitragSo, Dez 12, 2004 0:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Du wirst sicher die nächsten Tage ins Netz können. es gibt sicher noch andere Dinge die du coden kannst solltest du bei diesem Problem stecken bleiben. Leiste die Vorarbeit und ich werde gerne versuchen Dir zu helfen. Aber erst dann.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

fliege

BeitragSo, Dez 12, 2004 0:24
Antworten mit Zitat
Benutzer-Profile anzeigen
OK danke, ich glaube, durch die vielen Sachen die ich immer angefangen habe und nie zu ende gebracht habe, werde ich wieder zu sprunghaft!

Fliege
 

fliege

BeitragSo, Dez 12, 2004 13:30
Antworten mit Zitat
Benutzer-Profile anzeigen
ok, den Cube kann ich schon mal nach hinten bewegen, also nur auf der z-Achse, denn ich will ja eine Steuerung mit der Maus, und die 2D Koordinaten der Maus entsprechen zum Beispiel X = 300.0 und Y = 266.0
Und schon sehe ich den Cube nicht!
Da es aber Benutzerfreundlicher ist, alles mit der Maus zu klicken als mit den Pfeiltasten herumzuhantieren, will ich bei der Steuerung mit der Maus bleiben. Jetzt stellen sich zwei Fragen:
1) In 2D sind x,y = 0 die Linke obere Ecke, aber in 3D ist 0,0,0 die Mitte des Fensters. Wie kann ich es gegebenfalls umstellen?

2) Wie kann ich das nun richtig berechnen? Es muss doch eine Formel geben, amsonsten wäre ja eine Verfolgung vom Cube der Maus nicht möglich!

Also bitte postet mir noch ein beispiel, wie ich die 2D Koordinaten in 3D Koordinaten umwandeln kann, ich komme ernsthaft nicht dahinter!

Fliege

FreakForFreedom

BeitragSo, Dez 12, 2004 15:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi fliege!

Ich habe dein prob zwar nicht ganz verstanden, aber vieleicht hilft dir dieser Codeschnipsel weiter (hab ich mal aus irgendeinem forum bsp ge"klepptet" Rolling Eyes ) :

Code: [AUSKLAPPEN]

PickedEntity = CameraPick (camera, MouseX (), MouseY ())
      If MouseHit(1) 
         bx#=PickedX()-EntityX(<dein cube>)
         bz#=PickedZ()-EntityZ(<dein cube>)
         bn#=(bx^2+by^2+bz^2)
         bx=bx/bn   
         bz=bz/bn
         move=1
      EndIf
      If move=1
         AlignToVector <dein cube>,bx,0,bz,0,.1; the 'rate' (.1) makes the bot visually turn
         MoveEntity <dein cube>,0,0,.7; speed of the bot - originally set to .05 (just in case you change it)
      EndIf
      ;das move musste auf 0 setzen, wenn dein cube mit der maus (oder den gepickten Coos) collidiert.
Mfg
F.F.F.
"Try and ERROR!"
 

fliege

BeitragSo, Dez 12, 2004 15:43
Antworten mit Zitat
Benutzer-Profile anzeigen
danke, ich werde mir den Code einmal ansehen und schauen, ob es das ist, vom schnellen durchlesen her schon! Danke!
Fliege
 

fliege

BeitragSo, Dez 12, 2004 23:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Leider hilft mir der Code nichts....danke trotzdem!
Um es mal näher zu beschreiben:
Ich habe einen Würfel und den Mauszeiger am Bildschirm. Jetzt will ich, das der Würfel die Maus verfolgt, sich immer mit der linken vorderen Ecke an die Mauszeigerspitze klemmt. Ich möchte ihn verschieben. Dorthin wo die Maus ist...Da aber die 2D Koordinaten wesentlich größer sind (0 - 800, 0 - 600) kann ich nicht einfach:
BlitzBasic: [AUSKLAPPEN]
PositionEntity cube, MouseX(), MouseY(), -10

...verwenden, denn das würde weit auserhalb der Sichtbaren Fläche liegen! Nun will ich, wenn ich mit der Maus in die Mitte des Fensters fahre, auch den Cube dort haben, genauso wie wenn ich ihn an die linke Ecke des Fensters verschiebe, das ich ihn auch dort haben will. Vielleicht kann mir jetzt jemand helfen!
Hoffe ich zumindest....
Danke schon mal im Voraus!
Fliege
 

OJay

BeitragMo, Dez 13, 2004 0:15
Antworten mit Zitat
Benutzer-Profile anzeigen
sag mal, willst du uns eigentlich verarschen, oder hast du wirklich den iq eines sacks badewannenstöpsel?

noch mal ganz langsam und zum mitschreiben!
onlinehilfe aufschlagen, nach den befehlen suchen:
CameraPick(), PickedX(), PickedY(), PickedZ()
CameraProject(), ProjectedX(), ProjectedY()


darf ja wohl nicht wahr sein sowas...

regaa

BeitragMo, Dez 13, 2004 10:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Du darfst dir auch die Beispielcodes in der OH angucken, sie sind, nun ja, sehr verständlich.
UltraMixer Professional 3 - Download
QB,HTML,CSS,JS,PHP,SQL,>>B2D,B3D,BP,BlitzMax,C,C++,Java,C#,VB6 , C#, VB.Net
 

fliege

BeitragMo, Dez 13, 2004 21:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein, ich will euch nicht vera******, denn ich finde die Arbeit mancher Leute hier im Forum einfach toll, entschuldige, wenn ich es nicht auf anhieb verstanden habe!
Habe hier aber leider noch ein Problem:
BlitzBasic: [AUSKLAPPEN]

If MouseDown(1)
selecttedentity = CameraPick(cam, MouseX(), MouseY())
If selecttedentity <> 0
Repeat
Cls
CameraPick(cam, MouseX(), MouseY())
PositionEntity selecttedentity , PickedX(), PickedY(),0
UpdateWorld
RenderWorld
Flip
Until MouseDown(1) = 0
EndIf
EndIf
funktioniert bei Types nicht....was kann ich dagegen machen?

Die globale Veriable für die Typeliste entity heißt gleichfalls entity... Er sagt abr immer
BlitzBasic: [AUSKLAPPEN]
selecttedentity = 0


Hoffe, ich gehe euch damit nicht auf die Nerven... Embarassed
Fliege

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group