Snippet DistanceBetweenXY, AngleBetweenXY, OffsetX-Y

~GaLs~

† Ғσſ ŧħə ѕαĸε Φƒ ~Ğ䣚~ †
Reaction score
180
This is just a small snippet made by me from converting the original natives.
Ofcourse, it is in Jass. :p

I just found it generally useful because it is quite frustating for every time search for the native and use the formula inside the native, so I made this snippet to make it easy for me, and now for everyone.

Enough of the stupid intro, lets take a look in the code!

*Below is the implementation instruction, it is not the real code!
JASS:
//-------------------------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------------------------

//Implement
//Create a trigger name anything, delete everything inside it and copy this code inside.

//Usage
//It is the same as normal function calling, below is every detail of each function.

//Functions (This snippet contains of 4 functions)
//
//-------------------------------------------------------------------------------------------------------
//================================================================================
//== function DistanceBetweenXYl takes real x1, real y1, real x2, real y2 returns real ==
//================================================================================
//
//This function work the same way as the function "DistanceBetweenPoints".
//(function DistanceBetweenPoints takes location locA, location locB returns real)
//
//You can use it by just as same as calling DistanceBetweenPoints but replace the locations to real.
//-------------------------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------------------------
//========================================================================
//== function OffsetX takes real x1, real dist, real angle returns real ==
//========================================================================
//========================================================================
//== function OffsetY takes real y1, real dist, real angle returns real ==
//========================================================================
//
//These 2 functions works the same way as the function "PolarProjectionBJ".  
//(function PolarProjectionBJ takes location source, real dist, real angle returns location)
//
//Since a function can't return 2 different value, I'll seperate to different functions.
//Unlike PolarProjectionBJ, you don't give the location as paremeter but each real to each function.
//
//Call "OffsetX" to find the polar offset of the location's X. 
//Call "OffsetY" for the polar offset of the location's Y.  
//-------------------------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------------------------
//===============================================================================
//== function AngleBetweenXY takes real x1, real y1, real x2, real y2 returns real ==
//===============================================================================
//
//This function works the same way as the function "AngleBetweenPoints".
//(function AngleBetweenPoints takes location locA, location locB returns real)
//
//Since that function takes 2 location as paremeter, this function takes 4 reals as paremeter. (X and Y axis per location)
//
//It is so easy to use it by just call it and replace the paremeter to the location's x-axis and y-axis.
//-------------------------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------------------------

//-------------------------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------------------------


*This is the real code!
JASS:

library RealXY

function DistanceBetweenXY takes real x1, real y1, real x2, real y2 returns real
    return SquareRoot((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1))
endfunction
    
function OffsetX takes real x1, real dist, real angle returns real
    return x1 + dist * Cos(angle * bj_DEGTORAD)
endfunction
    
function OffsetY takes real y1, real dist, real angle returns real
    return y1 + dist * Sin(angle * bj_DEGTORAD)
endfunction
    
function AngleBetweenXY takes real x1, real y1, real x2, real y2 returns real
    return bj_RADTODEG * (Atan2(y2 - y1, x2 - x1))
endfunction

endlibrary


Demo Map:
View attachment RealXY Demo Map.w3x

Feel free to criticize me, I know I am not the perfect one.
 
Reaction score
456
JASS:
function DistanceBetweenXY takes real x1, real y1, real x2, real y2 returns real
    return SquareRoot((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1))
endfunction
    
function OffsetX takes real x1, real dist, real angle returns real
    return x1 + dist * Cos(angle * bj_DEGTORAD)
endfunction
    
function OffsetY takes real y1, real dist, real angle returns real
    return y1 + dist * Sin(angle * bj_DEGTORAD)
endfunction
    
function AngleBetweenXY takes real x1, real y1, real x2, real y2 returns real
    return bj_RADTODEG * (Atan2(y2 - y1, x2 - x1))
endfunction


More likely like likely that likely like.

And those comments are pretty unneeded indeed. Just takes space.
 

~GaLs~

† Ғσſ ŧħə ѕαĸε Φƒ ~Ğ䣚~ †
Reaction score
180
>>And those comments are pretty unneeded indeed. Just takes space.
Seperated.
 

~GaLs~

† Ғσſ ŧħə ѕαĸε Φƒ ~Ğ䣚~ †
Reaction score
180
>>Degrees
noone uses that except GUIers..

Hmm...? I am using it.

What's the matter of using it? I do lack of knowledge on Maths and degree+offset is the limit of my current knowledge.

Return back to your words, what should I use instead??
 

PurgeandFire

zxcvmkgdfg
Reaction score
509
It is a good system but very easy. :p

No doubt, this will make better for inlining. Good thing this snippet is short. xD

Good job.
 

Cidzero

Imma firin mah lazer!!!1!1
Reaction score
39
I just use the formula because I don't mind taking the 5 seconds to write it out. So yea to an extent, meaning depending upon the person, some might use, some might use the original ways given by Blizzard, or some will just type out the formulas.
 

~GaLs~

† Ғσſ ŧħə ѕαĸε Φƒ ~Ğ䣚~ †
Reaction score
180
If you are just using 1 or 2 times of it, it is doesn't matter if you write the formula out again, but if you use it alot and later on, you will just fed up on keep on writting the formula and changing those value.

It might easily cause confusion too.
 

Trollvottel

never aging title
Reaction score
262
hm nice idea but for me it is too hard to remember all the function names all the time so i prefer to write it myself. ^^
 

~GaLs~

† Ғσſ ŧħə ѕαĸε Φƒ ~Ğ䣚~ †
Reaction score
180
>>hm nice idea but for me it is too hard to remember all the function names all the time so i prefer to write it myself. ^^
Then add it into the natives list. xD

I doubt that you could remember all the natives. ;)
 

~GaLs~

† Ғσſ ŧħə ѕαĸε Φƒ ~Ğ䣚~ †
Reaction score
180
>>i have no idea what this is about
It is a snippet just like the GUI action. ("A" Position offset by 300 towards 40 degree)
 

Trollvottel

never aging title
Reaction score
262
>>hm nice idea but for me it is too hard to remember all the function names all the time so i prefer to write it myself. ^^
Then add it into the natives list. xD

I doubt that you could remember all the natives. ;)

i can only about 20% so all i need and its faster for me to write what i know (the given formulas) than to look for the right function.
 

~GaLs~

† Ғσſ ŧħə ѕαĸε Φƒ ~Ğ䣚~ †
Reaction score
180
>>These are basically fluff functions.
Oh really?

Then I should be advised to deleted this whole thread?
 

Hatebreeder

So many apples
Reaction score
381
>>These are basically fluff functions.
Oh really?

Then I should be advised to deleted this whole thread?

Don't take everything too seriously o_O

But, May I advise you something?
- Since this Snipplet might Help GUI user who want to learn Jass, I suggest you make a test map, with a Spell or something, on how to use this, how this Works, and why it is better to use this, rather than using the GUI functions.
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top