Diffrence between Rad2Deg() and bj_RADTODEG?

luorax

Invasion in Duskwood
I don't know what's the difference between them (I guess there isn't any) but it's definitely [ljass]bj_RADTODEG[/ljass]. It's a simple multiplication and global read, while the other native is a function call plus at least a multiplication. I've never seen anyone using [ljass]Rad2Deg[/ljass], if it was faster, those speedfreaks on THW would have used it already.
 

Tyrulan

Ultra Cool Member
[ljass]Rad2Deg()[/ljass] is a function, and requires a lookup (through pointers) and a call stack displacement.

[ljass]bj_RADTODEG[/ljass] is a constant variable. It is scoped such that access to it is much faster (and always will be) than calling a function.

The difference then becomes in how you use them. Some people don't mind the negligible speed difference and prefer the function conversion. Some people like seeing the math. Using [ljass]Rad2Deg()[/ljass] will also use [ljass]bj_RADTODEG[/ljass] to compute the returned value. What coders are really doing is skipping a step.

Thus [ljass]Rad2Deg(50)[/ljass] is actually calculating [ljass]50 * bj_RADTODEG[/ljass] ( [ljass]bj_RADTODEG[/ljass] has a value of [ljass]180 / bj_PI[/ljass]).

Hope this helps.

Cheers.
 

Bribe

vJass errors are legion
No one I have seen has done any tests to confirm that one produces different results from the other. It's there because Blizzard wanted it to be there. One less-evil but unecessary function is I2R, especially when the GUI adds it, since it's only useful for division and could be replaced with (i + 0.).
 

Tyrulan

Ultra Cool Member
One less-evil but unecessary function is I2R, especially when the GUI adds it, since it's only useful for division and could be replaced with (i + 0.).
Made even further useless by the editor's limited - but still apparent - implicit casting.
JASS:
local integer myInteger = 1
call DisplayTextToForce(GetPlayersAll(), R2S(I2R(myInteger)))
call DisplayTextToForce(GetPlayersAll(), R2S(myInteger + 0.))
call DisplayTextToForce(GetPlayersAll(), R2S(myInteger))

The last 2 of the 3 displays use implicit casting. All are syntactically correct and produce the same results.
 

GFreak45

I didnt slap you, i high 5'd your face.
the way you are talking about this is like blizzard never makes useless functions, yet bjs still exist, the gui ifs add nots to every conditional statement, and plenty of gui functions cause crashes in the editor, blizzard are game-makers, not language designers or even game completors (every game they release is unfinished)

but yes, to answer the question, whenever you have an option between using a variable and simple math it will always be faster than any function call, even [ljass]DoNothing()[/ljass] :p
 

DaFatalGigabyte

New Member
Thus [ljass]Rad2Deg(50)[/ljass] is actually calculating [ljass]50 * bj_RADTODEG[/ljass] ( [ljass]bj_RADTODEG[/ljass] has a value of [ljass]bj_PI / 180[/ljass]).
[ljass]bj_RADTODEG[/ljass] has a value of [ljass]180 / bj_PI[/ljass].
[ljass]bj_DEGTORAD[/ljass] has a value of [ljass]bj_PI / 180[/ljass].
 
General chit-chat
Help Users
  • No one is chatting at the moment.
  • C Cherry.Grove:
    My boyfriend is super into Bethesda modding so I'm probably going to join him in that for a bit, then move on to making mobile/browser games.
  • C Cherry.Grove:
    I mostly just want to look at my old projects because I know I posted uploads on here somewhere.
  • C Cherry.Grove:
    My one game was basically Among Us but you sabotaged an entire medieval city simulated drastically inefficiently with dynamic NPCs :S
  • C Cherry.Grove:
    of course I never finished it x D
  • jonas jonas:
    xD
  • jonas jonas:
    I think you can still run the original game, just there's a chance your map won't work with the newer patches
  • jonas jonas:
    what development framework have you been looking at for mobile development?
  • jonas jonas:
    I'm currently creating (as a hobby) a space invaders like game for mobile using Xamarin, after starting a few larger projects that I also may not have finished :rolleyes::p
  • The Helper The Helper:
    Awesome! you should look at the Atari VCS platform it does not have a huge user base but the one it has is super active at around 11k and they have no games in there store
  • The Helper The Helper:
    basically it is linux
  • The Helper The Helper:
    OMG it is BanLord as Blackveiled on the forum
  • The Helper The Helper:
    what is up buddy
  • jonas jonas:
    thanks for the tip, that sounds cool. Never heard about the VCS before but seems like it should be a good match
  • tom_mai78101 tom_mai78101:
    The winter vacation left a toll on me. I missed staying up late and sleeping in late.
  • C Cherry.Grove:
    i haven't looked into it yet
  • C Cherry.Grove:
    If I could use something Python compatible it would save me some learning
  • C Cherry.Grove:
    But Unity might be easiest
  • C Cherry.Grove:
    looking at old posts here makes me happy. Makes me be all like "wow I was pretty smart in 2009"
  • C Cherry.Grove:
    mostly failing at life through adulthood really demotivated me for a while
  • C Cherry.Grove:
    ....what I don't get is why the fuck they would force us to permanently convert to a version of the game everyone fucking hated : \
  • C Cherry.Grove:
    Raid Shadow Legends texture pack smh
  • jonas jonas:
    Most people fail at life throughout their adulthood. Sometimes we get to learn from it. Usually it just feels like crap.
    +1
  • The Helper The Helper:
    What does not kill you makes you stronger is what they say
  • C Cherry.Grove:
    for real! :cool:

    Members online

    No members online now.

    Affiliates

    Hive Workshop NUON Dome
    Top