Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding
You last visited: Today at 23:33

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Hilfe bei einer Kollisionserkennung gesucht

Discussion on Hilfe bei einer Kollisionserkennung gesucht within the General Coding forum part of the Coders Den category.

Reply
 
Old   #1
 
-AmA-'s Avatar
 
elite*gold: 0
Join Date: Dec 2007
Posts: 728
Received Thanks: 460
Hilfe bei einer Kollisionserkennung gesucht

Hallo allerseits, ich habe ein mathematisches Problem.
Leider habe ich nicht so viel Ahnung, aber vieleicht gibt es ja wer, der mir helfen kann.

Ich habe ein Viereck und ein Punkt in einer 3D Matrix.
Ich benenne die Vektoren einfach mal:
A: Viereck unten links
B: Viereck oben links
C: Viereck unten rechts
D: Viereck oben rechts
P: Vektor des Punktes

Ich möchte nun aus diesen Vektoren den Abstand T von P zum Viereck errechnen.
Zusätzlich muss ich wissen, wie weit P vom linken Rand (AB) und vom rechten Rand (CD) relativ entfernt ist und wie weit P vom Rand oben (BD) und vom Rand unten (AC) relativ entfernt ist.

Als erstes habe ich mich darüber Informiert, wie man eine Kollisionserkennung bei dreiecken macht. Dazu habe ich mir dieses Tutorial angesehen:

Dort bin ich aber an der Erklärung, wie man t berechnet.
Hier meine Rechnung:
Code:
					V2:
					X: 150 Y: 50 Z: 50


V1:
X: 100 Y: 100 Z: 100


					V3:
					X: 200 Y: 150 Z: 150

face normal = (V2 - V1) x (V3 - V1)
X: 5000 = (150 - 100) x (200 - 100)
Y: -2500 = (50 - 100) x (150 - 100)
Z: -2500 = (50 - 100) x (150 - 100)

triPoint = (V1 + V2 + V3) / 3
X: 150 = (100 + 150 + 200) / 3
Y: 100 = (100 + 50 + 150) / 3
Z: 100 = (100 + 50 + 150) / 3

0 = (faceNormal.x * triPoint.x) + (faceNormal.y * triPoint.y) + (faceNormal.z * triPoint.z) + D
0 = (5000 * 150) + (-2500 * 100) + (-2500 * 100) + D

D = -((faceNormal.x * triPoint.x) - (faceNormal.y * triPoint.y) - (faceNormal.z * triPoint.z))
-250000 = -((5000 * 150) + (-2500 * 100) + (-2500 * 100))

V1(x1, y1, z1) * t == V2(x2, y2, z2) * (1 - t)

t = -(A*x2 + B*y2 + C*z2 + D) / (A*(x1-x2) + B*(y1-y2) + C*(z1-z2))
Mittlerweile bin ich mir nicht mal sicher ob dies der richtige Ansatz ist.
Kann mir wer die Lösung zeigen, einen anderen Ansatz oder ein anderes Tutorial empfehlen oder sonst irgendwie helfen?
-AmA- is offline  
Reply


Similar Threads Similar Threads
[Hilfe]Brauche hilfe bei einer Quest
06/12/2012 - Metin2 Private Server - 4 Replies
Gibt es ein Quest befehl wie command("i 19") nur ohne die Abfrage ob der Spieler genügend Rechte hat? MFG Dennis
Cheat engine in einer WinRar datei gesucht.
11/20/2011 - Nostale - 7 Replies
Heyho, da ich keine sachen mehr normal Downloaden (Admin rechte verkackt xD) Bräuchte ich cheat engine in einer winrar datei,würdet mir sehr helfen.:) Danke im vorraus,nitro.
[Hilfe]Kann mir einer einer hier ..
02/07/2011 - AutoIt - 3 Replies
einstellen so das wenn ich F4 drück das er stopt und bei F3 startet While 1 MouseClick ( "left",975,509,5) sleep (1000) MouseClick ( "left",975,509,5) WEnd
[HILFE] Hilfe bezüglich einer Levelanzeige
11/20/2009 - Metin2 Private Server - 39 Replies
Hallo ihr lieben, ich wollte mal fragen wie es möglich ist das ich ingame die Level von anderen Spielern sehen kann. Muss ich da was an der Db vom Server ändern? oder geht des überhaupt? Würde mich über eure hilfe freuchen :rolleyes:



All times are GMT +1. The time now is 23:34.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.