Gamestudio Links
Zorro Links
Newest Posts
Removing outliers from files
by jcl. 11/04/26 10:30
[MED] Import from FBX (2010) missing!!!
by rayp. 11/03/26 14:33
What are you working on?
by rayp. 11/02/26 13:57
No connection to MT4
by JeyKey II. 10/29/26 09:34
Zorro plugin for Hyperliquid.xyz
by opm. 10/28/26 13:50
Icon "OP"
by JeyKey II. 10/27/26 07:03
AUM Magazine
Latest Screens
Dorifto samurai
Shadow 2
Rocker`s Revenge
Stug 3 Stormartillery
Who's Online Now
0 registered members (), 8,322 guests, and 1 spider.
Key: Admin, Global Mod, Mod
Newest Members
MaliceTheMaker, Haitao_Ren, JimSimons, julienp, julienper
19248 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Find out if a vector is between two others #464370
02/07/17 19:32
02/07/17 19:32
Joined: Mar 2006
Posts: 1,993
Karlsruhe
PadMalcom Offline OP
Serious User
PadMalcom  Offline OP
Serious User

Joined: Mar 2006
Posts: 1,993
Karlsruhe
Hi, I'd like to know, if a vector is between two others. Here some examples.



Basically, I want to check if v(x) is right of v(1) and left of v(2).

Re: Find out if a vector is between two others [Re: PadMalcom] #464371
02/07/17 21:23
02/07/17 21:23
Joined: Jun 2009
Posts: 2,210
Bavaria, Germany
Kartoffel Offline
Expert
Kartoffel  Offline
Expert

Joined: Jun 2009
Posts: 2,210
Bavaria, Germany
hmm, maybe
dot(v1, vx) > dot(v1, v2)
using normalized (unit) vectors


edit: oops, I just saw that you wanted to check if they are in a specific order.

in that case calculate the angle of each vector and compare them.


POTATO-MAN saves the day! - Random
Re: Find out if a vector is between two others [Re: Kartoffel] #464372
02/07/17 21:40
02/07/17 21:40
Joined: Mar 2006
Posts: 1,993
Karlsruhe
PadMalcom Offline OP
Serious User
PadMalcom  Offline OP
Serious User

Joined: Mar 2006
Posts: 1,993
Karlsruhe
Hi thanks, calculate the the of each vector related to what? laugh

Re: Find out if a vector is between two others [Re: PadMalcom] #464373
02/07/17 22:02
02/07/17 22:02
Joined: Jun 2009
Posts: 2,210
Bavaria, Germany
Kartoffel Offline
Expert
Kartoffel  Offline
Expert

Joined: Jun 2009
Posts: 2,210
Bavaria, Germany
here's the theory in 2d.
using counter-clockwise (ccw) angles, your condition would be something like:

angle(vx) - angle(v2) < angle(v1) - angle(v2) => ccw order: v2, vx, v1

to calculate the angle of each vector* just use atan2(dy, dx) with dx/dy = the x & y components of each vector
(* the angle between the positive x axis and the vector, like in mathematics)

keep in mind that special cases can cause the area between v1 and v2 to exceed the [0° - 360°] range. to compensate for that, a simple modulo-operation should do the trick:

Code:
ang_diff_2x = (angle(vx) - angle(v2)) % 360
ang_diff_21 = (angle(v1) - angle(v2)) % 360

if(ang_diff_2x < ang_diff_21)
...


Last edited by Kartoffel; 02/07/17 22:04.

POTATO-MAN saves the day! - Random

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