Another simple math question.

dudeim

New Member
Reaction score
22
Hey guys,

I again am having some problems with math.

Currently I'm calculating 3 points at a x radius around a spell casting unit, 3 projectiles should fly to those points, somehow though my calculations are wrong (as I'm no math genius I have no idea why it's not working or even if I'm doing it correct:p), this is what i do:

JASS:

//calculating the starting angle .caster is the caster of the spell and .getY() basicly calls GetUnitY same for .getX
//.Y is the target Y of the spell cast (it can be both ground and unit) it's basicly GetSpellTargetY() same for .X
local real angle = bj_RADTODEG * Atan2(.caster.getY() - .Y, .caster.getX() - .X)

//this is how I calculate the target x,y positions the projectiles need to go to.
//700 is the circle radius I think it needs to go there atleast<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite7" alt=":p" title="Stick Out Tongue    :p" loading="lazy" data-shortname=":p" />
set x = .caster.getX() + 700 * Cos(angle)
set y = .caster.getY() + 700 * Sin(angle)

So these are my calculations and somehow the projectiles just fly to some random degree (though if I cast it at the same point the projectiles fly the same way).
So what am I doing wrong?

Thanks alot;)
 

Trollvottel

never aging title
Reaction score
262
remove bj_RADTODEG from you calculations.

It converts the angle vom radians to degrees ( Atan2 returns radians) but Cos and Sin take radians. bj_RADTODEG is just for GUI users.

Just remember 2*Pi := 360°
 

dudeim

New Member
Reaction score
22
Oooh I just C&Ped that part from some script that basicly did what I wanted, but gonna remove it and see how it works:)
Edit: changed the calc in the top post to new one (so just removing the bj_RADTODEG) but now it's firing towards the otherside of the unit so it's like angle+180 degrees somehow
 

Trollvottel

never aging title
Reaction score
262
Ye, thats how the Atan2 (and Atan) function works.

Atan2(.caster.getY() - .Y, .caster.getX() - .X)
Here .Y is the Origin and .caster.getY() is the target. Switch the positions so it is

Atan2(.Y -.caster.getY(),.X - .caster.getX())
or just do
Atan2(.caster.getY() - .Y, .caster.getX() - .X) + bj_PI
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top