Java-Gaming.org
Play Revenge of the Titans! The situation is critical. We need fancy commanders to defend Earth, the moon, Mars!
Featured games (78)
games approved by the League of Dukes
Games in Showcase (408)
games submitted by our members
Games in WIP (293)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  angle in degree  from two mouseClick point  (Read 1933 times)
0 Members and 1 Guest are viewing this topic.
Offline lbrinon

Junior Newbie




Java games rock!


« Posted 2002-10-31 08:44:19 »

hello Smiley,

I search how to obtain degree information from two location of point in my applet for ordinal direction for sprite .

I trie :

public class Angle {
   
   int pointOneX = 100;        // ->
   int pointOneY = 100;        // v
   
   int pointTwoX = 90;        // ->
   int pointTwoY = 58;        // v
 
   double distanceX = 0;
   double distanceY = 0;
   double distance = 0;
   
   public Angle() {
       
       calculDistance();
       calculAngle();
   }
   
   private void calculDistance() {
       
       distanceX = pointTwoX - pointOneX;
       distanceY = pointTwoY - pointOneY;
       
       distance = Math.sqrt(distanceX * distanceX + distanceY * distanceY);
       
   }
   
   private void calculAngle() {
       
       double startAngle = (int)Math.toDegrees(Math.asin(distanceY / distance));

           System.out.println(" startAngle : " + startAngle);
       
   }
       
   public static void main(String[] args) {
       
       new Angle();
   }
   
}

but the result is not very helpfull.

have you a solution ? thank you very much




Offline Captain-Goatse

Junior Member




I suck at teh 2D. XBOX IS BIG LOL!111


« Reply #1 - Posted 2002-10-31 09:12:11 »

Ok, since I have spent endless hours on this, i know this by my heart.

atan2(deltay/dealtax)

(my example)
so you have the static position lets say the position of your character and then you take the mouseX cordinate - positionY and then divide it by mouseY-positionY and now you gots the polar angle information.

It works the same way with anything. Just remember atan2(change in x/ change in y)

I suggest using atan2 since atan1 is not good for this situation. It will "flip" on the negative axis.
Offline lbrinon

Junior Newbie




Java games rock!


« Reply #2 - Posted 2002-10-31 09:59:41 »

ok and i trie this :

i don' t compile with atan2:

int rotateAngle=(int)java.lang.Math.round(java.lang.Math.atan2(((double)(pointTwoX - pointOneY)) / ((double)(pointTwoY - pointOneY))));
       
because atan2 take two double in parameter .

with atan compile but the result is not my solution :

int rotateAngle=(int)java.lang.Math.round(java.lang.Math.atan(((double)(pointTwoX - pointOneY)) / ((double)(pointTwoY - pointOneY)))*180/java.lang.Math.PI);

       
you have the same example with atan2 ?
thank you very much
Games published by our own members! Check 'em out!
Play the free demo of Revenge of the Titans!
Offline lbrinon

Junior Newbie




Java games rock!


« Reply #3 - Posted 2002-10-31 11:03:29 »

Ok sorry now i have my degree with your solution :

int rotateAngle=(int)java.lang.Math.round(java.lang.Math.atan2(((pointTwoX - pointOneY)) , ((pointTwoY - pointOneY)))*360/java.lang.Math.PI);

now i can test the angle for choose good animationStrip for my sprite !

my code is good or have you a more speed solution ?

Thank you captain. Wink
Offline Captain-Goatse

Junior Member




I suck at teh 2D. XBOX IS BIG LOL!111


« Reply #4 - Posted 2002-10-31 11:41:41 »

Its quite fast. I don't think you can optimize the math itself, the things that matter are *where* you use it and *how*. I haven't really optimized it, but I think speed wise you should be quite okay even with that.
Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

Play Revenge of the Titans! The situation is critical. We need fancy commanders to defend Earth, the moon, Mars!
 
Get high quality music tracks for your game!

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

The invasion has landed! On Mars! And you're there to beat 'em!
cubemaster21 (146 views)
2013-05-17 21:29:12

alaslipknot (154 views)
2013-05-16 21:24:48

gouessej (185 views)
2013-05-16 00:53:38

gouessej (179 views)
2013-05-16 00:17:58

theagentd (189 views)
2013-05-15 15:01:13

theagentd (174 views)
2013-05-15 15:00:54

StreetDoggy (217 views)
2013-05-14 15:56:26

kutucuk (242 views)
2013-05-12 17:10:36

kutucuk (240 views)
2013-05-12 15:36:09

UnluckyDevil (246 views)
2013-05-12 05:09:57
Complex number cookbook
by Roquen
2013-04-24 12:47:31

2D Dynamic Lighting
by Oskuro
2013-04-17 16:46:12

2D Dynamic Lighting
by Oskuro
2013-04-17 16:45:57

2D Dynamic Lighting
by Oskuro
2013-04-17 16:23:20

Noise (bandpassed white)
by Roquen
2013-04-05 17:36:01

Noise (bandpassed white)
by Roquen
2013-04-03 16:17:38

Java Data structures
by Roquen
2013-03-29 13:21:12

Topic Request
by kutucuk
2013-03-22 21:42:01
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!
Page created in 0.07 seconds with 20 queries.