Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

How do I transform value into screen coordinates

  1. Feb 25, 2013 #1
    How do I transform my x, y values into screen coordinates system

    All values is in pixels
    In my coordinate system origo is located in (40,495)
    The display area that I can use is from X=40 to x=750 and
    from y=495 to y=55
    When you go down in the coordinate system the y value is increasing and when
    you go to the right
    the x value is increasing.
    The y-axis is showing time from 12:00 to 20:00 and the x-axis is distance
    showing from 0 to 800

    So I can have values like
    [13:10, 190]
    [13:40, 240]
    [14:25, 390]
    [15:10, 431]
    [16:10, 554]
    [17:10, 643]
    [18:10, 740]

    I just wonder if someone has a algoritm that I can use to transform my
    values into this coordinate system.


    //Tony
     
  2. jcsd
  3. Feb 25, 2013 #2

    HallsofIvy

    User Avatar
    Staff Emeritus
    Science Advisor

    I assume you want a linear transformation (so that one part of the screen isn not "squeezed" or "stretched" more than another). You want x= 0 to correspond to screen coordinate, h= 40 and x= 800 to correspond to h= 750. A linear transformation is of the form h= Ax+ B. x=0, h= 40 tells you that 40= A(0)= B so B= 40. x= 800, h= 750 gives 750= 800A+ B= 800A+ 40. Solve that for A.

    Similarly, in terms of "y" and vertical coordinates, you want v= Ay+ B. y= 12, at the bottom, corresponds to v= 495 so 495= 12A+ B. y= 20, at the top, corresponds to v= 55 so 55= 20A+ B. You can eliminate B from that by subtracting the two equations: 495- 55= 440= 8A. Solve that for A, the put that into either equation to solve for B.
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook




Similar Discussions: How do I transform value into screen coordinates
  1. How do I solve this? (Replies: 11)

  2. How do I write this? (Replies: 11)

Loading...