Java-Gaming.org Hi !
 Featured games (90) games approved by the League of Dukes Games in Showcase (683) Games in Android Showcase (196) games submitted by our members Games in WIP (750) games currently in development
 News: Read the Java Gaming Resources, or peek at the official Java tutorials
Pages: [1]
 ignore  |  Print
 adjusting points for rotation  (Read 1041 times) 0 Members and 1 Guest are viewing this topic.
PRW56

Senior Newbie

 « Posted 2013-01-01 01:37:12 »

_________
|________| *   <-- pretend that is a rectangle and the * behind it is the point, if the rectangle is rotated about the point, how do you know what its new coordinates are?
sproingie

JGO Kernel

Medals: 202

 « Reply #1 - Posted 2013-01-01 05:56:20 »

This is basic coordinate transformation.   The gist is "translate first, then rotate".  Mathematically it's expressed as the multiplication of the transformation matrices of those two operations.

For Java2D:
http://www.apl.jhu.edu/~hall/java/Java2D-Tutorial.html#Java2D-Tutorial-Transforms

For OpenGL, the same concepts apply, but the API differs, depending on whether you're using fixed function or programmable pipeline.  Doing it by hand will be a nice learning exercise, but if you just want to draw geometry with transformations, you should probably just learn the API for LibGDX or Slick2D
PRW56

Senior Newbie

 « Reply #2 - Posted 2013-01-14 09:06:30 »

Rotation matricies seem to be what I was looking for, but when I try to implement them (at the moment the sword is just a line), I just see the sword rotating from what looks like 90 degrees to 180 degress as fast as it can, and the sword itself is much longer than it should be, this is what pertains to the sword in the game loop:

 1  2  3  4  5  6  7  8  9  10  11  12 `//test is the game character, who is holding the sword        double subx = test.getXloc();        double suby = test.getYloc();        playerCenterX = test.getXloc() + (test.getWidth()/2);        playerCenterY = test.getYloc() + (test.getHeight()/2);        if(cooldown > 0)            cooldown--;                playerRot = Math.atan2(mouseY - playerCenterY, mouseX - playerCenterX);        swordRot1 = playerRot;        subx = sword.getX1();        suby = sword.getY1();        sword.setLine(subx*Math.cos(swordRot)-suby*Math.sin(swordRot),subx*Math.sin(swordRot)+suby*Math.cos(swordRot),sword.getX2(),sword.getY2());`
Roquen
 « Reply #3 - Posted 2013-01-14 11:11:58 »

Describe what you want.
PRW56

Senior Newbie

 « Reply #4 - Posted 2013-01-14 20:08:57 »

I wanted to be able to have the sword about 30 degrees to the right of where the character is facing, then after the mouse is clicked the sword swings around 90 degrees in the leftward direction. What I have in that bit of code is what I thought would work for a stationary sword, but it doesn't stay stationary (as I described in the previous post).
Pages: [1]
 ignore  |  Print

You cannot reply to this message, because it is very, very old.

 orrenravid (191 views) 2016-07-16 03:57:23 theagentd (262 views) 2016-07-11 14:28:54 Hydroque (346 views) 2016-07-06 05:56:57 Hydroque (494 views) 2016-07-03 08:52:54 GrandCastle (377 views) 2016-07-01 09:13:47 GrandCastle (368 views) 2016-07-01 09:09:45 CopyableCougar4 (423 views) 2016-06-25 16:56:52 Hydroque (402 views) 2016-06-22 02:17:53 SwampChicken (366 views) 2016-06-20 13:22:57 SwampChicken (298 views) 2016-06-20 13:22:49
 Archive 26x Brynn 24x EgonOlsen 22x Slyth2727 22x orangepascal 22x TritonDreyja 21x orange451 20x DavidBVal 19x Spasi 19x theagentd 15x KaiHH 12x LiquidNitrogen 11x Opiop 11x princec 11x Phased 10x CoDi^R 10x
 Making a Dynamic Plugin Systemby Hydroque2016-06-25 00:13:25Java Data structures2016-06-13 21:22:09Java Data structures2016-06-13 21:20:42FPS Camera Tutorialby Hydroque2016-05-22 05:40:58Website offering 3D Models specifically for games for freeby vusman2016-05-18 17:23:09Website offering 3D Models specifically for games for freeby vusman2016-05-09 08:50:56Website offering 3D Models specifically for games for freeby vusman2016-05-06 11:10:21Website offering 3D Models specifically for games for freeby vusman2016-04-29 12:56:17
 java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org