Java-Gaming.org    
Featured games (91)
games approved by the League of Dukes
Games in Showcase (576)
games submitted by our members
Games in WIP (497)
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  
  AffineTransform problems  (Read 797 times)
0 Members and 1 Guest are viewing this topic.
Offline Maverick

Senior Newbie





« Posted 2005-12-17 19:06:05 »

hi to all,
My problem is that when I rotate my BufferedImage and then draw it on screen the image is cut and not fully drawn.

1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
 
void update() {
    //...
       rads=0.068*3;
        if (initialRelativeYPos<23 && initialRelativeYPos%3==0){
            AffineTransform af = new AffineTransform();
            af.rotate(rads,width/2,height/2);
            AffineTransformOp op = new AffineTransformOp(af,AffineTransformOp.TYPE_BILINEAR);
            frames.set(currentFrame,(op.filter(frames.get(currentFrame) ,null)));
        }
    }

    public void draw(Graphics g) {
        if(IS_ALIVE){
            g.drawImage(frames.get(currentFrame),xPos,yPos,null);
        }
       //...

Original image:


In Game image after Transformed:
Offline Ask_Hjorth_Larsen

Junior Member




Java games rock!


« Reply #1 - Posted 2005-12-18 01:22:45 »

Does the destination image of the AffineTransformOp have the same dimensions as the source image? In that case the rotated version won't even fit!

You could simply apply the affinetransform while drawing the image instead of first redrawing it onto another image. Set the transform of your graphics object (you can do that by first casting to Graphics2D) and reset it when you're done drawing. That way your image won't get cropped (and performance might be improved).
Offline Maverick

Senior Newbie





« Reply #2 - Posted 2005-12-18 18:18:58 »

thanks for the help:
Here is the final code:
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
public void draw(Graphics g) {
        if(IS_ALIVE){
            Graphics2D g2 = (Graphics2D)g;
            rads=0.07;
            if (initialRelativeYPos<15){
                AffineTransform af = new AffineTransform();
                af.rotate(rads*initialRelativeYPos,width/2,height/2);
                AffineTransformOp op = new AffineTransformOp(af,AffineTransformOp.TYPE_BILINEAR);
                g2.drawImage(frames.get(currentFrame),op,xPos,yPos);
            }else{
                AffineTransform af = new AffineTransform();
                af.rotate(1.05,width/2,height/2);
                AffineTransformOp op = new AffineTransformOp(af,AffineTransformOp.TYPE_BILINEAR);
                g2.drawImage(frames.get(currentFrame),op,xPos,yPos);
            }
            g2.dispose();
        }
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.

xsi3rr4x (12 views)
2014-04-15 18:08:23

BurntPizza (11 views)
2014-04-15 03:46:01

UprightPath (24 views)
2014-04-14 17:39:50

UprightPath (10 views)
2014-04-14 17:35:47

Porlus (27 views)
2014-04-14 15:48:38

tom_mai78101 (49 views)
2014-04-10 04:04:31

BurntPizza (108 views)
2014-04-08 23:06:04

tom_mai78101 (208 views)
2014-04-05 13:34:39

trollwarrior1 (176 views)
2014-04-04 12:06:45

CJLetsGame (182 views)
2014-04-01 02:16:10
List of Learning Resources
by Longarmx
2014-04-08 03:14:44

Good Examples
by matheus23
2014-04-05 13:51:37

Good Examples
by Grunnt
2014-04-03 15:48:46

Good Examples
by Grunnt
2014-04-03 15:48:37

Good Examples
by matheus23
2014-04-01 18:40:51

Good Examples
by matheus23
2014-04-01 18:40:34

Anonymous/Local/Inner class gotchas
by Roquen
2014-03-11 15:22:30

Anonymous/Local/Inner class gotchas
by Roquen
2014-03-11 15:05:20
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!