Java-Gaming.org Hi !
Featured games (83)
games approved by the League of Dukes
Games in Showcase (539)
Games in Android Showcase (132)
games submitted by our members
Games in WIP (603)
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  
  Rotation of Two Attached Images  (Read 918 times)
0 Members and 1 Guest are viewing this topic.
Offline ghostsoldier23

Junior Devvie


Medals: 1



« Posted 2012-03-02 00:22:41 »

I am already able to rotate an image relative to mouse position, but now I need to draw an image on that one that will stay in a fixed position on it and rotate with it.

Take this example:

The circle is the original image rotating.  The rectangle is what is being rotated.  So I need this....


To become this...


I would REALLY prefer NOT using Image.getGraphics because the attached image will probably overlay past the original's boundaries in a lot of cases.

Can anyone explain how to accomplish this?
Offline Cero
« Reply #1 - Posted 2012-03-02 00:29:09 »

but now I need to draw an image on that one that will stay in a fixed position on it and rotate with it.

you are not terribly clear about how things are done in your code,
but in this case if you draw ONTO the image you are rotating
Image.getGraphics and whatnot, it would work

of course not sure if thats ok

you can also make a big transparent image with the black rectangle on it at the starting point, the image being the same size as the circle

other options require more math of course =D

Offline ghostsoldier23

Junior Devvie


Medals: 1



« Reply #2 - Posted 2012-03-02 00:34:36 »

you are not terribly clear about how things are done in your code,

What sort of clarification do you need?

but in this case if you draw ONTO the image you are rotating
Image.getGraphics and whatnot, it would work

Image.getGraphics will not show anything drawn outside of the image boundaries.  As I stated in the OP, often times the overlaying image will overlap those boundaries, thus making it not a good solution.

I did, for whatever reason, put that as BufferedImage.getSubImage which isn't really relevant nor what I mean... oops Tongue

I'll take the math please!
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline ghostsoldier23

Junior Devvie


Medals: 1



« Reply #3 - Posted 2012-03-02 00:36:35 »

you can also make a big transparent image with the black rectangle on it at the starting point, the image being the same size as the circle

This actually isn't a bad idea... I might play around with that.

Larger transparent image on which both are drawn, then IT will be rotated.
Offline ReBirth
« Reply #4 - Posted 2012-03-02 04:07:01 »

Let me see. Maybe what he wants is the rect always be drawn to a fixed position relative to the circle. So the rect will follow the circle (the circle always sees the rect in same way). In that way, you need to share same coordinate of rotation's origin. Correct me.

Offline ra4king

JGO Kernel


Medals: 356
Projects: 3
Exp: 5 years


I'm the King!


« Reply #5 - Posted 2012-03-02 05:41:08 »

1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
AffineTransform old = g2d.getTransform(); //get the old transform

g2d.setTransform(new AffineTransform(old)); //create new transform that is copy of old

g2d.rotate(theta,circleCenterX,circleCenterY); //rotate about the circle's center

g2d.fillOval(circleX,circleY,circleWidth,circleHeight);
g2d.fillRect(rectX,rectY,rectWidth,rectHeight);

g2d.setTransform(old); //reset back to old

Offline ghostsoldier23

Junior Devvie


Medals: 1



« Reply #6 - Posted 2012-03-11 04:25:31 »

1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
AffineTransform old = g2d.getTransform(); //get the old transform

g2d.setTransform(new AffineTransform(old)); //create new transform that is copy of old

g2d.rotate(theta,circleCenterX,circleCenterY); //rotate about the circle's center

g2d.fillOval(circleX,circleY,circleWidth,circleHeight);
g2d.fillRect(rectX,rectY,rectWidth,rectHeight);

g2d.setTransform(old); //reset back to old


Yeah this is pretty much what I've ended up doing except with BufferedImages (so using g2d.drawImage(img, affine, null)).

Thanks for your help guys!
Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

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

The first screenshot will be displayed as a thumbnail.

rwatson462 (32 views)
2014-12-15 09:26:44

Mr.CodeIt (23 views)
2014-12-14 19:50:38

BurntPizza (50 views)
2014-12-09 22:41:13

BurntPizza (84 views)
2014-12-08 04:46:31

JscottyBieshaar (45 views)
2014-12-05 12:39:02

SHC (59 views)
2014-12-03 16:27:13

CopyableCougar4 (58 views)
2014-11-29 21:32:03

toopeicgaming1999 (123 views)
2014-11-26 15:22:04

toopeicgaming1999 (114 views)
2014-11-26 15:20:36

toopeicgaming1999 (32 views)
2014-11-26 15:20:08
Resources for WIP games
by kpars
2014-12-18 10:26:14

Understanding relations between setOrigin, setScale and setPosition in libGdx
by mbabuskov
2014-10-09 22:35:00

Definite guide to supporting multiple device resolutions on Android (2014)
by mbabuskov
2014-10-02 22:36:02

List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27

Resources for WIP games
by CogWheelz
2014-08-01 16:20:17

Resources for WIP games
by CogWheelz
2014-08-01 16:19:50

List of Learning Resources
by SilverTiger
2014-07-31 16:29:50
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
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!