Quads pürfen
Übersicht

![]() |
ToeBBetreff: Quads pürfen |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also ich arbeite grad ein wenig mit der Draw3D2Beta, und ich wollte mal fragen, wie kann ich einen Punkt pürfen ob der in einem Quad liegt ?
mfg ToeB |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
Macintosh |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
sry, aber was ist pürfen ;? | ||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die Draw3D2-Beta hat eine Funktion mit dem Namen CheckQuad3D. Wichtig ist nur, dass man ein Handleparameter übergibt. Sonst kann die Draw3D2 mit den Koordinaten nichts anfangen.
Ansonsten gibt es auch jede Menge Code hier im Forum, welche ein True zurück geben, sobal eine Koordinate sich innerhalb eines Quads befindet. |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja danke, jetzt bin ich wieder so schlau wie vorher ... Ich wollte ja nicht die Maus auf ein Quad abfragen, sondern einen punkte der verschieden sein kann... dafür hab ich mal so ne DrawQuad23D funtion geschrieben :
Code: [AUSKLAPPEN] Function CheckQuad23D(xpos#,ypos#,FDrawX1#,FDrawY1#,FDrawX2#,FDrawY2#,FDrawX3#,FDrawY3#,FDrawX4#,FDrawY4#,FDrawButton%=1,FDrawHandle%=0)
;MOW/GÜLTIGKEIT If GDrawMOW=1 Then ;VARIABLEN/VORREINIGUNG GDrawMouseCode=GDrawMouseCode+1 MouseOver3D=0 MouseDown3D=0 MouseHit3D=0 MousePit3D=0 ;VARIABLEN/VORBERECHNUNGEN Local IDrawXMouse%=xpos Local IDrawYMouse%=ypos ;VARIABLENDEKLARATIONEN Local IDrawX1#,IDrawY1# Local IDrawX2#,IDrawY2# Local IDrawX3#,IDrawY3# Local IDrawX4#,IDrawY4# Local LDrawMesh% ;QUELLANGABE/PRÜFUNG If FDrawHandle<>0 Then ;VARIABLENDEKLARATIONEN LDrawMesh=PeekInt(GDrawFaceBank,FDrawHandle+DRAWBANKMESH) ;VEKTORTRANSFORMATION/VON: 'Xeres' TFormPoint(FDrawX1,FDrawY1,0,LDrawMesh,0): CameraProject(GDrawCamera,TFormedX(),TFormedY(),TFormedZ()): IDrawX1=ProjectedX()-GDrawXSize: IDrawY1=GDrawYSize-ProjectedY() TFormPoint(FDrawX2,FDrawY2,0,LDrawMesh,0): CameraProject(GDrawCamera,TFormedX(),TFormedY(),TFormedZ()): IDrawX2=ProjectedX()-GDrawXSize: IDrawY2=GDrawYSize-ProjectedY() TFormPoint(FDrawX3,FDrawY3,0,LDrawMesh,0): CameraProject(GDrawCamera,TFormedX(),TFormedY(),TFormedZ()): IDrawX3=ProjectedX()-GDrawXSize: IDrawY3=GDrawYSize-ProjectedY() TFormPoint(FDrawX4,FDrawY4,0,LDrawMesh,0): CameraProject(GDrawCamera,TFormedX(),TFormedY(),TFormedZ()): IDrawX4=ProjectedX()-GDrawXSize: IDrawY4=GDrawYSize-ProjectedY() End If ;QUADKOLLISION/BERECHNEN+ANWENDEN If (IDrawY2-IDrawY1)*(IDrawXMouse-IDrawX2)-(IDrawX2-IDrawX1)*(IDrawYMouse-IDrawY2)=>0 Then If (IDrawY3-IDrawY2)*(IDrawXMouse-IDrawX3)-(IDrawX3-IDrawX2)*(IDrawYMouse-IDrawY3)>0 Then If (IDrawY4-IDrawY3)*(IDrawXMouse-IDrawX4)-(IDrawX4-IDrawX3)*(IDrawYMouse-IDrawY4)>0 Then If (IDrawY1-IDrawY4)*(IDrawXMouse-IDrawX1)-(IDrawX1-IDrawX4)*(IDrawYMouse-IDrawY1)=>0 Then ;ALLGEMEINE/MAUSVARIABLEN/SETZEN MouseDown3D=MouseDown(1)+(MouseDown(2)*2)+(MouseDown(3)*4) If GDrawMousePit<>GDrawMouseCode Then MousePit3D=1 If GDrawMouseHit=0 Then MouseHit3D=MouseDown3D GDrawMousePit=GDrawMouseCode MouseTest3D=GDrawMouseCode GDrawMouseHit=MouseDown3D MouseOver3D=1 ;GLOWIMAGE/ANWENDEN If FDrawButton Mod DRAWBANKSTEP=0 Then DrawQuad3D(FDrawButton,FDrawX1,FDrawY1,FDrawX2,FDrawY2,FDrawX3,FDrawY3,FDrawX4,FDrawY4,0,(MouseDown3D>0)*DRAWDOWNIMAGE) ;FUNKTION/RÜCKGABEWERT Return True End If End If End If End If End If End Function Aber die tut iwie net funtzen ... ^^ mfg ToeB |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hab nun die Funktion bis auf das wesentliche gekürzt:
Code: [AUSKLAPPEN] Function CheckQuad(FXPos#,FYPos#,FX1#,FY1#,FX2#,FY2#,FX3#,FY3#,FX4#,FY4#)
;QUADKOLLISION/BERECHNEN+ANWENDEN If (FY2-FY1)*(FXPos-FX2)-(FX2-FX1)*(FYPos-FY2)=>0 Then If (FY3-FY2)*(FXPos-FX3)-(FX3-FX2)*(FYPos-FY3)>0 Then If (FY4-FY3)*(FXPos-FX4)-(FX4-FX3)*(FYPos-FY4)>0 Then If (FY1-FY4)*(FXPos-FX1)-(FX1-FX4)*(FYPos-FY1)=>0 Then ;FUNKTION/RÜCKGABEWERT Return True End If End If End If End If End Function ![]() Lässt sich aber einfach integrieren. Edit1: Achte darauf, dass ein Quad immer im Uhrzeigersinn gezeichnet wird. Sonst erkennt diese Funktion die Kollision nicht. |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
![]() |
faeX |
![]() Antworten mit Zitat ![]() |
---|---|---|
By the way: Gesucht und nichts gefunden, wo kriegt man das heiße Eisen denn her? ![]() |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die Draw3D2 ist nur auf ein paar Leuten zum testen, rundaddeln und arbeiten zugeteilt worden. Da das ganze noch nicht offiziell ist, und sich aus diesem Grund noch Änderungen ergeben können, hab ich jedem der User mein persönlichen Support zugesichert. Das kann ich unmöglich allen anbieten.
Erst letztes Wochenende hab ich auf Text3D einen kleinen Bug behoben und es noch um ''Tabulatoren'' (on the fly) erweitert. Aufgrund der Anzahl der Leute die die Draw3D2 bekommen haben, möchte ich ungerne weitere damit versorgen. Auch jedes neue Download-Update bedeutet für mich Arbeit. |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group