Gamestudio Links
Zorro Links
Newest Posts
Zorro 2.70
by jcl. 09/29/25 09:24
optimize global parameters SOLVED
by dBc. 09/27/25 17:07
ZorroGPT
by TipmyPip. 09/27/25 10:05
assetHistory one candle shift
by jcl. 09/21/25 11:36
Plugins update
by Grant. 09/17/25 16:28
AUM Magazine
Latest Screens
Rocker`s Revenge
Stug 3 Stormartillery
Iljuschin 2
Galactic Strike X
Who's Online Now
3 registered members (NewbieZorro, TipmyPip, 1 invisible), 19,045 guests, and 8 spiders.
Key: Admin, Global Mod, Mod
Newest Members
krishna, DrissB, James168, Ed_Love, xtns
19168 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Gleichheit zweier Vektoren #406735
08/28/12 10:55
08/28/12 10:55
Joined: Jan 2012
Posts: 18
Hessen, Germany
tiefland Offline OP
Newbie
tiefland  Offline OP
Newbie

Joined: Jan 2012
Posts: 18
Hessen, Germany
Hallo Leute,

ich habe zwei Vektoren definiert:
VECTOR* vec1;
VECTOR* vec2;

Im Laufe des Spiels soll geprüft werden, ob die Vektoren die gleichen Werte beinhalten. Wenn ich nun schreibe

if(vec1 == vec2),

so erhalte ich nie Gleichheit (möglicherweise prüft das Programm nicht die Werte, sondern ob die Pointer auf das gleiche Objekt zeigen). Andererseits möchte ich aber auch nicht

if(vec1.x == vec2.x && vec1.y == vec2.y && vec1.z == vec2.z)

nehmen. Gibt es eine bessere Methode?


Gamestudio Version: Extra 8.10
Re: Gleichheit zweier Vektoren [Re: tiefland] #406736
08/28/12 11:00
08/28/12 11:00
Joined: Nov 2007
Posts: 2,568
Germany, BW, Stuttgart
MasterQ32 Offline
Expert
MasterQ32  Offline
Expert

Joined: Nov 2007
Posts: 2,568
Germany, BW, Stuttgart
ja:
pack das zweite in eine funktion:
Code:
function vec_equal(VECTOR *v1, VECTOR *v2)
{
if(v1->x != v2->x) return 0;
if(v1->y != v2->y) return 0;
if(v1->z != v2->z) return 0;
return 1;
}



Visit my site: www.masterq32.de
Re: Gleichheit zweier Vektoren [Re: MasterQ32] #406737
08/28/12 11:12
08/28/12 11:12
Joined: Mar 2008
Posts: 2,247
Baden Württemberg, Germany
Espér Offline
Expert
Espér  Offline
Expert

Joined: Mar 2008
Posts: 2,247
Baden Württemberg, Germany
geht au einfacher

if(vec_dist(vec1,vec2) == 0)

laugh


Selling my Acknex Engine Editions (A7 Com & A8 Pro):
>> click here if you are interested <<
Re: Gleichheit zweier Vektoren [Re: Espér] #406738
08/28/12 11:15
08/28/12 11:15
Joined: Nov 2007
Posts: 2,568
Germany, BW, Stuttgart
MasterQ32 Offline
Expert
MasterQ32  Offline
Expert

Joined: Nov 2007
Posts: 2,568
Germany, BW, Stuttgart
joa stimmt grin


Visit my site: www.masterq32.de
Re: Gleichheit zweier Vektoren [Re: Espér] #406739
08/28/12 11:19
08/28/12 11:19
Joined: Jan 2012
Posts: 18
Hessen, Germany
tiefland Offline OP
Newbie
tiefland  Offline OP
Newbie

Joined: Jan 2012
Posts: 18
Hessen, Germany
Danke für die schnellen Antworten. Ich hatte gehofft, dass lite-C dafür eine extra Funktion hat, die ich nur nicht gefunden habe, aber mit vec_dist oder einer eigenen Funktion bin ich auch zufrieden.


Gamestudio Version: Extra 8.10
Re: Gleichheit zweier Vektoren [Re: tiefland] #406741
08/28/12 13:07
08/28/12 13:07
Joined: Mar 2006
Posts: 2,252
Hummel Offline
Expert
Hummel  Offline
Expert

Joined: Mar 2006
Posts: 2,252
Nimm besser die Funktion von MasterQ32, da vec_dist neben einem Skalarprodukt noch eine Wurzeloperation verwendet und damit deutlich langsamer ist als einfach die einzelnen Elemente auf Gleich/Ungleichheit zu prüfen.

Re: Gleichheit zweier Vektoren [Re: Hummel] #406742
08/28/12 13:13
08/28/12 13:13
Joined: Jul 2001
Posts: 6,904
H
HeelX Offline
Senior Expert
HeelX  Offline
Senior Expert
H

Joined: Jul 2001
Posts: 6,904
Der Vorteil von der vec_dist Methode ist es allerdings, dass du dann auf einen Schwellenwert prüfen kannst, wie z.B. vec_disth(v1, v2) < 1 oder so. Das heißt, selbst dann, wenn die Vektoren geringfügig abweichen, kannst du sie als "gleich" erkennen.

Re: Gleichheit zweier Vektoren [Re: HeelX] #406748
08/28/12 15:31
08/28/12 15:31
Joined: Mar 2006
Posts: 2,252
Hummel Offline
Expert
Hummel  Offline
Expert

Joined: Mar 2006
Posts: 2,252
Dann kannst du dir trotzdem die Wuzel sparen indem du die quadratische Distanz auf einen quadrierten Schwellwert überprüfst.


Moderated by  HeelX, Lukas, rayp, Rei_Ayanami, Superku, Tobias, TWO, VeT 

Gamestudio download | Zorro platform | shop | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de

Powered by UBB.threads™ PHP Forum Software 7.7.1