Rotate and move image

Hi,I'm trying to make a game kinda like gta or asteroids whereyou have top view. I am using an image to be the player and, I want to rotate that image using left and righ keys and with the up key move the player to the direction whereit is rotated.
The problem is that i cannot display the rotation and movement at the same time.
I'm using a code like this.
AffineTransform transform = new AffineTransform
public void checkGameInput(){
     float velocityX=0;
     float velocityY=0;
     if(rotateLeft.isPressed()){
           angle1+=angle2;    
          transform.rotate(-angle2, player.getWidth()/2, player.getHeight()/2);
// similar for rightkey
   if (moveFront.isPressed()){
           velocityX=_Player.SPEED*Math.cos(angle1),
           //same for velocityY
}the problem is when i try to print on the sceen.
I can update position
public void draw(Graphics 2D g){
g.drawImage(player. getImage(), Math.round(player.getX()), Math.round(player.getY()),null)  // player.getX(9 returns position of playeror update rtation
public void draw(Graphics 2D g){
g.drawImage(player.getImage(),transform, null);is there a way to join this to drawImageso I can rotate ane move the rotatyed image?
thank you very much for any kind of help.
Edited by: Muninn on Nov 29, 2008 3:13 AM

Use the transform to do both rotation and translation (multiple transform operations can be concatenated)
transform.rotate(-angle2, player.getWidth()/2, player.getHeight()/2);
transform.translate(player.getX(), player.getY());

Similar Messages

  • Problem in rotating and moving image at the same time

    the problem is that im making a car game(2D) in which u have upper view of car.
    i have make the car rotate bt problem is that i canot move it forward or backward correctly
    .wen i move it forward or backward i goes wrong...
    nd another problem is that i cannot both rotate and move the car at same time
    example if i press both up nd right arrow keys i doesnt move nd rotate..
    nd also plz tell me the accelerate nd reverse method so i can speedup my car like other car games
    here is the code
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.awt.geom.*;
    import java.applet.*;
    import java.net.URL;
    public class RaceGame extends JComponent
    static int x=560;
    static int y=410;
    static int currentAngle=0;
    static double hspeed,vspeed;
    static int carspeed=1;
    Image car;
    //int angle=car.getAngle();
    Image getImage(String filename)
    URL url = getClass().getResource(filename);
    ImageIcon icon = new ImageIcon(url);
    return icon.getImage();
    //Rectangle2D.Float rect=new Rectangle2D.Float(x,y,30,30);
    //Rectangle rect=new Rectangle(x,y,30,30);
    public RaceGame()
    car=getImage("car1.jpeg");
    public void CreateBase()
    JFrame frame=new JFrame("Dare2Race");
    frame.setBounds(70,30,650,500);
    frame.setVisible(true);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    Container c=frame.getContentPane();
    c.add(new RaceGame());
    frame.addKeyListener(new adapter());
    c.setBackground(Color.BLACK);
    //JLabel finish=new JLabel("FINISH");
    //c.add(finish);
    public void rotate()
    currentAngle+=1;
    if(currentAngle>=360)
    currentAngle=0;
    repaint();
    public void paint(Graphics g)
    super.paint(g);
    Graphics2D g2d=(Graphics2D)g;
    AffineTransform origXform=g2d.getTransform();
    AffineTransform newXform=(AffineTransform)(origXform.clone());
    newXform.rotate(Math.toRadians(currentAngle),x,y);
    g2d.setTransform(newXform);
    g2d.drawImage(car,x,y,this);
    g2d.setTransform(origXform);
    g.setColor(Color.WHITE);
    g.drawLine(640,380,420,380);
    g.drawLine(640,460,320,460);
    g.drawLine(420,380,420,300);
    g.drawLine(320,460,320,380);
    g.drawLine(420,300,125,300);
    g.drawLine(320,380,230,380);
    g.drawLine(230,380,230,460);
    g.drawLine(230,460,2,460);
    g.drawLine(125,300,125,370);
    g.drawLine(125,370,105,370);
    g.drawLine(2,460,2,180);
    g.drawLine(105,370,105,300);
    g.drawLine(2,180,450,180);
    g.drawLine(105,300,105,250);
    g.drawLine(105,250,550,250);
    g.drawLine(550,250,550,20);
    g.drawLine(550,20,275,20);
    g.drawLine(450,180,450,100);
    g.drawLine(450,100,360,100);
    g.drawLine(360,100,360,160);
    g.drawLine(360,160,10,160);
    g.drawLine(10,160,10,30);
    g.drawLine(275,20,275,90);
    g.drawLine(275,90,110,90);
    g.drawLine(110,90,110,30);
    repaint();
    class adapter extends KeyAdapter
    public void keyPressed(KeyEvent e)
    switch(e.getKeyCode())
    case KeyEvent.VK_LEFT:
    currentAngle--;
    repaint();
    break;
    case KeyEvent.VK_RIGHT:
    currentAngle++;
    repaint();
    break;
    case KeyEvent.VK_UP:
    carspeed++;
    hspeed=((double)carspeed)*Math.cos(currentAngle);
    vspeed=((double)carspeed)*Math.sin(currentAngle);
    x = x - (int) hspeed;
    y = y - (int) vspeed;
    repaint();
    break;
    case KeyEvent.VK_DOWN:
    carspeed--;
    hspeed=((double)carspeed)*Math.cos(currentAngle);
    vspeed=((double)carspeed)*Math.sin(currentAngle);
    x = x + (int)hspeed;
    y = y + (int)vspeed;
    repaint();
    break;
    public static void main(String[]args)
    RaceGame race=new RaceGame();
    race.CreateBase();
    //race.setDoubleBuffered(true);
    }

    the problem is that im making a car game(2D) in which u have upper view of car.
    i have make the car rotate bt problem is that i canot move it forward or backward correctly
    .wen i move it forward or backward i goes wrong...
    nd another problem is that i cannot both rotate and move the car at same time
    example if i press both up nd right arrow keys i doesnt move nd rotate..
    nd also plz tell me the accelerate nd reverse method so i can speedup my car like other car games
    plz help me
    here is the code
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.awt.geom.*;
    import java.applet.*;
    import java.net.URL;
    public class RaceGame extends JComponent
    static int x=560;
    static int  y=410;
    static int currentAngle=0;
    static double hspeed,vspeed;
    static  int carspeed=1;
    Image car;
    //int angle=car.getAngle();
    Image getImage(String filename)
    URL url = getClass().getResource(filename);
    ImageIcon  icon = new ImageIcon(url);   
    return icon.getImage();
    //Rectangle2D.Float rect=new Rectangle2D.Float(x,y,30,30);
    //Rectangle rect=new Rectangle(x,y,30,30);
    public RaceGame()
    car=getImage("car1.jpeg");
    public void CreateBase()
    JFrame frame=new JFrame("Dare2Race");
    frame.setBounds(70,30,650,500);
    frame.setVisible(true);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    Container c=frame.getContentPane();
    c.add(new RaceGame());
    frame.addKeyListener(new adapter());
    c.setBackground(Color.BLACK);
    //JLabel finish=new JLabel("FINISH");
    //c.add(finish);
    public void rotate()
    currentAngle+=1;
    if(currentAngle>=360)
    currentAngle=0;
    repaint();
    public void paint(Graphics g)
    super.paint(g);
    Graphics2D g2d=(Graphics2D)g;
    AffineTransform origXform=g2d.getTransform();
    AffineTransform newXform=(AffineTransform)(origXform.clone());
    newXform.rotate(Math.toRadians(currentAngle),x,y);
    g2d.setTransform(newXform);
    g2d.drawImage(car,x,y,this);
    g2d.setTransform(origXform);
    g.setColor(Color.WHITE);
    g.drawLine(640,380,420,380);
    g.drawLine(640,460,320,460);
    g.drawLine(420,380,420,300);
    g.drawLine(320,460,320,380);
    g.drawLine(420,300,125,300);
    g.drawLine(320,380,230,380);
    g.drawLine(230,380,230,460);
    g.drawLine(230,460,2,460);
    g.drawLine(125,300,125,370);
    g.drawLine(125,370,105,370);
    g.drawLine(2,460,2,180);
    g.drawLine(105,370,105,300);
    g.drawLine(2,180,450,180);
    g.drawLine(105,300,105,250);
    g.drawLine(105,250,550,250);
    g.drawLine(550,250,550,20);
    g.drawLine(550,20,275,20);
    g.drawLine(450,180,450,100);
    g.drawLine(450,100,360,100);
    g.drawLine(360,100,360,160);
    g.drawLine(360,160,10,160);
    g.drawLine(10,160,10,30);
    g.drawLine(275,20,275,90);
    g.drawLine(275,90,110,90);
    g.drawLine(110,90,110,30);
    repaint();
    class adapter extends KeyAdapter
    public void keyPressed(KeyEvent e)
      switch(e.getKeyCode())
        case KeyEvent.VK_LEFT:
        currentAngle--;
        repaint();
        break;
        case KeyEvent.VK_RIGHT:
        currentAngle++;
        repaint();
        break;
        case KeyEvent.VK_UP:
        carspeed++;
        hspeed=((double)carspeed)*Math.cos(currentAngle);
        vspeed=((double)carspeed)*Math.sin(currentAngle);
        x = x - (int) hspeed;
        y = y - (int) vspeed;
        repaint();
        break;
        case KeyEvent.VK_DOWN:
        carspeed--;
        hspeed=((double)carspeed)*Math.cos(currentAngle);
        vspeed=((double)carspeed)*Math.sin(currentAngle);
        x = x + (int)hspeed;
        y = y + (int)vspeed;
        repaint();
        break;
    public static void main(String[]args)
    RaceGame race=new RaceGame();
    race.CreateBase();
    //race.setDoubleBuffered(true);
    }and there is no compile time error in this code
    the only error that occurs when u write java RaceGame is because of the car image which compiler doesnt found and throughs exception if u place any image in ur bin folder adn name it car.jpg it wont generate error

  • Need to select and move images across multiple pages...

    Hi,
    I am using Indesign CS2 on a Windows machine and have a 25 page document with 4-up photos (4"X6") on individual pages. I used the ImageCatalog javascript to load these images so I don't seem to have any control from the Master page. I would like to group and move these images to a different location on their own pages.
    Do you know how to select these images across multiple pages? Or can a simple script be written to process this task?
    Thanks in advance for your help.
    -Greg

    Hi Greg,
    A script can certainly do what you want to do--but you have to be a bit more specific. Do you want to move them to different pages in some predefined way, or do you just want to adjust them a bit on the pages they're already on?
    Thanks,
    Ole

  • Ease of rotating and cropping images in CS6

    There is much I like about the new crop: Rotating the image instead of the box is SO much easier and the straighten option is a great time saver.
    But in one instance, I'm finding cropping in CS6 to be harder: Cropping images that are not correctly oriented in the first place.  Rotating an image 90-degrees was a snap in CS2: Alt-I/E/0.  The shortcut keys are gone in CS6, so using the rotation command is no longer quick.
    But I can do it in the crop box, right?  True -- but not easily.  The image is landscape, the crop box is portrait.  With the crop tool selected, holding the shift key down to get fixed-increment rotations doesn't work: Pressing the SHIFT key changes the cursor from rotation to the crop cursor.  To get the rotation, I have to start rotating the image and then press SHIFT to get 15-degree increments.  A few moments later, I have rotated the image into portrait orientation -- and the crop box is now centered on the image, but it is set to crop the middle.  I have to drag the handles out to get approximately what I want: The full image in the crop box.  (What I want is what I would get if I rotate the image with the Rotate command, then control-zero to fill the screen, and then select the crop tool.)
    We rotate a lot of images.  It's easy to do in CS2 and the two approaches I've found for CS6 are both awkward.  The new crop tool has replaced the dual arrows in older versions (to swap the horizontal and vertical sizes) with a rotation arrow.  I think you should restore the arrows (and their function) -- then use the rotate button to rotate the image, not the crop box.  (Isn't that the design center for the new crop box?  We're moving the image, not the crop box.)

    Howard, thanks for the tip about the X key; didn't realize it worked that way when the crop tool is active.  But in this case I had set the crop box dimenions, so the crop box starts out with the correct orientation.  Having played with this for a day, I conclude that the best approach for this task is to restore the old keyboard conventions for image rotation and rotate the image before launching the crop tool.
    I stand by my observation that the rotate key should affect the image, not the crop box because that is consistent with the new cropping paradigm: We rotate the image, not the crop box.  I realize making a change this late in the development cycle is awkward -- but if CS6 ships with this behavior, it will become even harder to change later -- and the user interface should be as consistent as possible.
    Noel, you are correct: The images are coming from scanned film.  All frames get scanned with the same orientation.  I want to avoid the "Patient: Doctor, it hurts when I do this.  Doctor: Then don't do that!" scenario.  Granted: If images are "correctly" oriented, this issue doesn't arise.  But not all images are oriented correctly and CS6 should be at least as graceful in handling the task as previous versions.

  • Rotate and Move

    Any chance 11g will have rotate and offset (move) functions?
    I wrote my own several years ago - but people I talk with are somewhat puzzled why 10gR2 still doesn't have these two basic spatial functions.

    I have started an "SDO Enrichment Project" out on Sourceforge. One of the first things up there is my current SDO_UTIL_PLUS package, which includes the above move and rotate functions.
    I hope to get some community involvement, and plan to add more packages and functions as time allows (copy from current source, improve documents, etc.).
    Enjoy...
    https://sourceforge.net/projects/oracle-sdo/

  • Working with images - Rotation and Movement

    Hello there,
    I have this problem that I cant seem to solve:
    I need to be able to move an image arround and there are restrictions to where image should be able to move: at any given time, when dragging, image should always cover whole body of a given border_container, this is simply achieved by sending a rectangle to the startDrag function, which will specify where the image is allowed to move. I got that part right, and its working, the problem arrise when I try to rotate the border_container (with the image), it should still be only possible to drag image so it all the time covers the body of the border_container, but I don't know how to do it.
    Code I use looks something like this:
    image.startDrag(getImageDragRectangle());
    protected function getImageDragRectangle():Rectangle
         return new Rectangle(
              this.width-image.contentWidth + x,
              this.height-image.contentHeight + y,
              Math.abs(this.width-image.contentWidth),
              Math.abs(this.height-image.contentHeight));
    Edit: image is not inside the border_container (not sure how relevant it is..)
    Could anyone help me out here and give me any hints or suggestions how I could fix it?

    You would have to write the image to a temporary file so that the browser could read it off the server. Browsers do not have access to the database, so there's no way to get the image from the database to the browser without using some sort of interim solution.
    ~Jer

  • Rotate and move multiple objects

    Hiya!
    I'm looking for a way for the user to be able to freely move
    by clicking and dragging objects and also have the ability for the
    user to rotate that object once in place. Any ideas, dudes?

    Look into startDrag(), stopDrag(), and the _rotation property
    (rotation if you're using AS3).

  • Rotating and Clickable Images

    Hello Everyone,
    Please point me to the right tutorial or provide steps to
    create the following effects. I want to create a Flash page, with:
    -3 category of speakers(in-wall, ceiling, and floor)
    -each time i click on anyone of thess categories, a 'window'
    will pop out and the different types of speaker images(for the
    category selected) will rotate/scroll in this 'window.' Then if a
    user see a speaker that he/she likes, he can simply point and click
    -when he clicks on the specific speaker, another
    window(within the same page) will show the specifications for this
    specific speaker.
    Please advise.
    Thank you.
    Leon

    Well, cycle is running in all but IE. I suggest that you double check your init code for cycle.
    See http://jquery.malsup.com/cycle/ for details on cycle.
    Also, try the jquery Plugins forum. The author of cycle is very pro-active there.
    Hope this helps.
    BTW: Mixing Spry and jQuery adds a lot of code to be downloaded. I recommend you considered sticking with just either Spry or jQuery.

  • Cut and move image using mouse ?

    Hello,
    I am developing one paint program. I am making it similar to microsoft paint. In This paint, I want to use lasso, magic wand tool and select tool. But I am not too familiar with java. And want to do with your help. Please help on this topic. If lasso and magic wand tools behave same. Then please tell me about only select tool that will use for the purpose of select a particular area from canvas (canvas is drawing sheets that holds the drawing). Please help me.
    If there is any snippet of this above declaration please send. Can we use system clipboard to cut, move and paste for this drawing by the help of mouse. Please help me. I will really thankful to you.
    Thanks in advance.
    Manveer

    For the Magic Wand (at least for what I suppose it is) I would consider the image as a graph, where two pixels are connected if the difference between their color values is below some tolerance value. Then you can easily perform the iterative breadth-first algorithm to collect the pixels of the selection. I recently did something similar (although not on an image itself, but on some higher abstraction of it).
    For the Lasso i would collect all the pixels, the user selects, then calculate the bounding box over the selected pixel area and finally determine for each pixel inside the bounding box, that is no member of the lasso/selection pixels, whether it lies inside or outside the selection area. This could be accomplished by performing another bfs from one pixel, that includes all pixels besides the ones lying outside the bounding box or are pixels of the selection lasso.

  • Rotating and Translating an Image

    I am making a game with a tank that can rotate and move forwards and backwards.
    I am able to get the tank Image to rotate, but when I call a translation, it resets the image back to its original image. How can I fix this?

    import java.awt.*;
    import java.awt.event.*;
    import java.awt.geom.*;
    import java.awt.image.BufferedImage;
    import java.io.*;
    import javax.imageio.ImageIO;
    import javax.swing.*;
    import javax.swing.event.*;
    public class TankGame extends JPanel {
        Walker walker = new Walker(this);
        BufferedImage image;
        AffineTransform at = new AffineTransform();
        Point2D.Double loc = new Point2D.Double(200,150);
        double theta = 0;
        double t = 3.0;
        boolean goAhead = true;
        public TankGame(BufferedImage image) {
            this.image = image;
            setTransform();
        protected void paintComponent(Graphics g) {
            super.paintComponent(g);
            Graphics2D g2 = (Graphics2D)g;
            g2.drawRenderedImage(image, at);
            //g2.setPaint(Color.red);
            //g2.fill(new Ellipse2D.Double(loc.x-2, loc.y-2, 4, 4));
        public synchronized void step() {
            int sign = goAhead ? 1 : -1;
            double x = loc.x + sign*t*Math.cos(theta);
            double y = loc.y + sign*t*Math.sin(theta);
            loc.setLocation(x, y);
            setTransform();
            repaint();
        private void setTransform() {
            double x = loc.x - image.getWidth()/2;
            double y = loc.y - image.getHeight()/2;
            at.setToTranslation(x, y);
            at.rotate(theta, image.getWidth()/2, image.getHeight()/2);
        private JPanel getUIPanel() {
            JPanel panel = new JPanel(new GridBagLayout());
            GridBagConstraints gbc = new GridBagConstraints();
            gbc.insets = new Insets(1,0,1,0);
            gbc.weightx = 1.0;
            String[] ids = { "ahead", "stop", "back" };
            ActionListener al = new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    String ac = e.getActionCommand();
                    if(ac.equals("stop")) {
                        walker.stop();
                    } else {
                        if(ac.equals("ahead")) {
                            goAhead = true;
                        } else if(ac.equals("back")) {
                            goAhead = false;
                        walker.start();
            for(int j = 0; j < ids.length; j++) {
                JButton button = new JButton(ids[j]);
                button.addActionListener(al);
                if(j == ids.length-1)
                    gbc.gridwidth = GridBagConstraints.REMAINDER;
                panel.add(button, gbc);
            JSlider slider = new JSlider(-180, 180, 0);
            slider.addChangeListener(new ChangeListener() {
                public void stateChanged(ChangeEvent e) {
                    int angle = ((JSlider)e.getSource()).getValue();
                    theta = Math.toRadians(angle);
                    setTransform();
                    repaint();
            gbc.gridwidth = 3;
            gbc.fill = GridBagConstraints.HORIZONTAL;
            panel.add(slider, gbc);
            return panel;
        public static void main(String[] args) throws IOException {
            String path = "images/geek/geek----t.gif";
            BufferedImage image = ImageIO.read(new File(path));
            TankGame test = new TankGame(image);
            JFrame f = new JFrame();
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            f.add(test);
            f.add(test.getUIPanel(), "Last");
            f.setSize(400,400);
            f.setLocation(200,200);
            f.setVisible(true);
    class Walker implements Runnable {
        TankGame game;
        Thread thread;
        boolean moving = false;
        long delay = 100;
        public Walker(TankGame tg) {
            game = tg;
        public void run() {
            while(moving) {
                try {
                    Thread.sleep(delay);
                } catch(InterruptedException e) {
                    moving = false;
                game.step();
        public void start() {
            if(!moving) {
                moving = true;
                thread = new Thread(this);
                thread.setPriority(Thread.NORM_PRIORITY);
                thread.start();
        public void stop() {
            moving = false;
            if(thread != null)
                thread.interrupt();
            thread = null;
    }

  • QT in html, events fired and movie internals doc

    Hi,
    The Javascript Scripting Guide says under "Executing JavaScript Functions From QuickTime", page 11:
    Wired actions can be triggered by user interaction, as a result of a frame in the movie being displayed, or as the
    result of arbitrary wired calculations.
    It also briefly describes (page 23) the matrix and rectangle properties, saying "You can use a movie’s transformation matrix to scale, translate, and rotate the movie image. For details on the transformation matrix, see Movie Internals."
    And the Rectangle is defined as "void SetRectangle(string rect)"
    Where can I find the reference to the events fired by QT automatically ?
    Where can I find this Movie Internals description ?
    I'm not very familiar with javascript... That's not a QT issue, but where can I find a description of the rect ?
    Many thanks
    Jean-Pierre
      Windows XP Pro  

    Yes, you can navigate to other pages using buttons/code in an swf file.  And you can trigger an event as well, though I don't know if that's what you intended to say if navigating to another page is what you are really after.
    In AS3, to make a button work with code, you need to add an event listener and event handler function for it.  You might need to add a few (for different events, like rollover, rollout, clicking it, but for now we'll just say you want to be able to click it to get a web page to open.  In the timeline that holds that button, in a separate actions layer that you create, in a frame numbered the same as where that button exists, you would add the event listener:
    btn1.addEventListener(MouseEvent.CLICK, btn1Click);
    The name of the unique function for processing the clicking of that button is specified at the end of the event listener assignment, so now you just have to write that function out:
    function btn1Click(evt:MouseEvent):void {
       var url:String = "http://www.awebsite.com/awebpage.html";
       var req:URLRequest = new URLRequest(url);
       navigateToURL(req);

  • Select and move multiple keyframs

    I just switched from Adobe Premier Elements on a PC to FCE 4. In PrEl, you can select multiple keyframes in their equivalent of the Viewer, you can them move them as a group. (Select them shift click or drag a square around them.)
    This is really useful for changing the timing of motion, i.e., if you decide that you'd like the motion to take a little longer etc.
    it also lets you move them to a different time w/out rick of changing the values in the overlay.
    I can't figure out a way to do this in FCE, is there a hidden way or something I'm missing?
    thanks

    I'd like to be able to stretch out a motion. For example, I scale in a photo. But I later decide the scaling should take 8 seconds rather than 5. I'd like to grab the 2nd keyframe for scale and rotation and move them both equally 3 seconds later.
    I believe moving a motion path just changes its position, but doesn't affect it's duration.

  • Fast image rotation and contrast adaptation

    First: I'm new in vision processing.
    I'm using LabView 8.0 with the IMAQ Vision development module. The aim is to control the angle and the contrast of a precalculated image (a greyscale wedge) in a fast loop with a framerate of 60 or 100Hz. Currently I use the time-consuming IMAQ rotate and IMAQ BCG functions. All these function works very fine but a litle bit to slow for my application. I have measure: IMAQ rotate with 40ms and IMAQ BCG with 15ms for an image with 1024 x 768 pixels (8-bit greyscale) on a new PC. I know that an arbitrary rotation is a processor intensive task.
    Please correct me, but i assume that with IMAQ rotate the image rotation will be carried out in the PC RAM. Afterwards the recalculated image will be written in the grafic memory. In a final step the image will be displayed on the monitor by mean of the grafic processor.
    I can imagine there exist a solution or some ideas in the LabView community to use the high end 3D very fast grafic card processor for the rotation and contrast tasks. I hope the approach will accelerate the time of calculation.
    Thanks for your help.
    Best regards
    Ivo Buske

    And of course, the rambling about IMAQ image pointers isn't relevant. (Skip all IMAQ.)
    You might as well send the image once (each time it changes), and rotate it with opengl.
    "Wiebe@CARYA" <[email protected]> wrote in message news:[email protected]...
    Hi,
    If I understand correctly, you just want a gradient screen to rotate, and to be able to adjust it's contrast.
    This can be done a lot easier without an image. If you use OpenGL, you can just draw two triangles with there color set correctly. (You'd be able to make nice rainbow pictures as a bonus.)
    An C/C++ application, or dll, could be made in a few hours by someone experienced with opengl and c++. You could even create an opengl window, and control it with LabVIEW. In other opengl applications there are some practical problems, but some might not matter to your application. Biggest problem is getting feedback (mouse clicks, close, move, resize window etc.) from the OpenGL window to LabVIEW.
    Opening a opengl window, rotating a few polygons, adjusting color, closing window certainly doable.
    Regards,
    Wiebe.
    "ibstein74" <[email protected]> wrote in message news:[email protected]...
    Hi Wiebe, I have a fixed image, created before with array functions, that contain a pure linear greyscale gradient (left side: white / right side: black). I used this image to control a "spatial light modulator". This device is connected to the second DVI graphic card output. The main task of the "spatial light modulator" is to shift the local phase of the reflective light. It works as an spatial resolved "adaptive mirror".&nbsp; The local phase shift correspondes directly to the applied grey level of the image. To change the direction in both dimensions of the reflective light I need to rotate this image (= rotate the phase wedge) Thereby the contrast can adjust the absolute angle of reflection.After I had calculated my greyscale gradient image and applied it to the second DVI output, I want only control the contrast and rotation. I think the graphic card function are very fast. But I have to control the graphic card directly per DLL or C-function node. It must be possible because I can tune the contrast and adjust the rotation manually with the nvidea driver in the windows system manager. I'm&nbsp; waiting for a couple of weeks of an answer from nvidea but it seems that contrast and rotation of an 2D-image is not a real problem for these 3-D guys. :-(I hope of an answer or new ideas.Ivo Buske

  • Superimposing layers each with isolated rotation, scale, and "move"ment

    This application seems like it should be easy, but two hours of experimentation have not solved the puzzle.  I have two transparent graphic eps files.  One I turn into a background layer by flattening it.  My need is to articulate detail on both files, which requires that the background image remain unchanging and the second (file's) image be superimposed over it and -independently- rotated, scaled, and moved.  Of course the second image is opened on some unknown variety of layer, but which I've been unable to discover.  That's my conundrum, should be intuitively simple but has proven impossible.  Anyone?

    "...is there a way to precisely scale, move, and rotate an image..."
    Yes, there is, and controls appear in the Options bar. For example, pictured here:
    the circled item allows a specific rotation, and the symbol appearing in the Edit > Transform image
    may be dragged to a particular "pivot point" in the image if you prefer.
    Note also that you may revise height & width (note the Link symbol to maintain proportion)
    The far left X and Y fields, when used with your keyboard arrow keys, provide for shifting an image in small, measured increments.

  • How do I cut an image in half and move the halves independently?

    How do I cut an image in half, and move the halves independently?

    Use the rectangular marquee tool to select half the image, then Layer>New Layer via cut. You can turn on the rulers and set a guide so you'll know the boundaries you want if you need it to be exactly half.
    If you want to also be able to move the other half, before you start double click the background layer in the layers panel to turn it to a regular layer.

Maybe you are looking for