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.
  • WildTurkey WildTurkey:
    is there a stephen green in the house?
    +1
  • The Helper The Helper:
    What is up WildTurkey?
  • The Helper The Helper:
    Looks like Google fixed whatever mistake that made the recipes on the site go crazy and we are no longer trending towards a recipe site lol - I don't care though because it motivated me to spend alot of time on the site improving it and at least now the content people are looking at is not stupid and embarrassing like it was when I first got back into this like 5 years ago.
  • The Helper The Helper:
    Plus - I have a pretty bad ass recipe collection now! That section of the site is 10 thousand times better than it was before
  • The Helper The Helper:
    We now have a web designer at my job. A legit talented professional! I am going to get him to redesign the site theme. It is time.
  • Varine Varine:
    I got one more day of community service and then I'm free from this nonsense! I polished a cop car today for a funeral or something I guess
  • Varine Varine:
    They also were digging threw old shit at the sheriff's office and I tried to get them to give me the old electronic stuff, but they said no. They can't give it to people because they might use it to impersonate a cop or break into their network or some shit? idk but it was a shame to see them take a whole bunch of radios and shit to get shredded and landfilled
  • The Helper The Helper:
    whatever at least you are free
  • Monovertex Monovertex:
    How are you all? :D
    +1
  • Ghan Ghan:
    Howdy
  • Ghan Ghan:
    Still lurking
    +3
  • The Helper The Helper:
    I am great and it is fantastic to see you my friend!
    +1
  • The Helper The Helper:
    If you are new to the site please check out the Recipe and Food Forum https://www.thehelper.net/forums/recipes-and-food.220/
  • Monovertex Monovertex:
    How come you're so into recipes lately? Never saw this much interest in this topic in the old days of TH.net
  • Monovertex Monovertex:
    Hmm, how do I change my signature?
  • tom_mai78101 tom_mai78101:
    Signatures can be edit in your account profile. As for the old stuffs, I'm thinking it's because Blizzard is now under Microsoft, and because of Microsoft Xbox going the way it is, it's dreadful.
  • The Helper The Helper:
    I am not big on the recipes I am just promoting them - I use the site as a practice place promoting stuff
    +2
  • Monovertex Monovertex:
    @tom_mai78101 I must be blind. If I go on my profile I don't see any area to edit the signature; If I go to account details (settings) I don't see any signature area either.
  • The Helper The Helper:
    You can get there if you click the bell icon (alerts) and choose preferences from the bottom, signature will be in the menu on the left there https://www.thehelper.net/account/preferences
  • The Helper The Helper:
    I think I need to split the Sci/Tech news forum into 2 one for Science and one for Tech but I am hating all the moving of posts I would have to do
  • The Helper The Helper:
    What is up Old Mountain Shadow?

      The Helper Discord

      Staff online

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top