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 (407)
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  
  A little bit of math - Rotation  (Read 404 times)
0 Members and 1 Guest are viewing this topic.
Offline Kronos

Senior Newbie





« Posted 2013-02-27 14:07:31 »

Hey guys,

I never listened to our maths teacher back in school time, now I could kick myself in the a** Sad.

I got a laserbeam and at the end a burst (in this case a dot). This laserbeam is rotating from the center to all the edges and so on.
How can I calculate the new coordinates for the end of the beam, where should be displayed an image of a typical laser burst.

My first attempt (thought) was to use some Math.sin and cos. But I really do not know how to use them properly. Wikipedia couldn't help me neither, it's not game dev related enough. I hope you guys are patient and could help me with this, hopefully trivial, question.

Thanks in advance. Smiley
Kronos

Offline Kronos

Senior Newbie





« Reply #1 - Posted 2013-02-27 14:30:47 »

I was to quick writing this thread Sad

I added a g.resetTransform(); before the burst image even could rotate...
however... is there an idiot secure mini tutorial for wanne-be game developers regarding cos(), sin() and PI, which you would recommend?
Offline vbrain

Junior Member


Medals: 3



« Reply #2 - Posted 2013-02-27 16:12:28 »

Here's something I just whipped up.

1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
public float angle;
public void update()
{
   angle += 0.5; //increase the degrees by 0.5 each update
  if (angle >= 360)
   {
      angle = 0;
   }
}

public void draw(Graphics g)
{
   //if the width is longer than the height, use this, otherwise switch to
  //screenHeight and centerY
  int radiusOfScreen = screenWidth - centerX;

   //convert degrees into radians to use with cos and sin
  int endX = (int)(centerX + radiusOfScreen * Math.cos(Math.toRadians(angle)));
   int endY = (int)(centerY + radiusOfScreen * Math.sin(Math.toRadians(angle)));
   g.drawLine(centerX, centerY, endX, endY)
}
Games published by our own members! Check 'em out!
Try the Free Demo of Revenge of the Titans
Offline Kronos

Senior Newbie





« Reply #3 - Posted 2013-02-27 19:21:49 »

Thanks vbrain.

I came up with a new problem. How can I manage stop increasing my laser's beam width when it collidates with the frame bounds (or objetcs flying around). I do not know how to calculate the ending point of my Rectangle, when it is rotated. The beam currently goes endlessly into the wide nothing (out of frame)....

 Shocked



edit:

I think I made it. It looks good so far.

1  
endPos.set((float)(x + width * Math.cos(Math.toRadians(rotation))), (float)(y + width * Math.sin(Math.toRadians(rotation))));


width is the radius. This gives me a Point of the "circle" -> my rotation. for those who had the same problem, or will have the same problem in the future.

I am a one man show Cheesy
Pages: [1]
  ignore  |  Print  
 
 

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 (88 views)
2013-05-17 21:29:12

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

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

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

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

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

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

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

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

UnluckyDevil (191 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.095 seconds with 20 queries.