[cairo] Coordinate from device to user space without a context

ed44 ed44 at xs4all.nl
Thu Nov 7 13:14:56 CET 2013

On 11/07/2013 09:29 AM, Donn wrote:
> Follow up summary.
> So far it seems to me, from my recent experience, that ..
> cr.device_to_user(x,y); //where cr is a Cairo.Context
> .. actually works, and that there is no equivalent way to do this in 
> situations where you have no context.

Yes, there is.


If you need to go the other way round, just do the basic algebra:

  x = (x_new - x0)/xx
  y = (y_new - y0)/yy

I think you need to read the answer from Bryce more carefully, it's there...

Also the values you get from "event.motion.x" and "event.motion.y" are 

BEFORE mx my: 201,665 | 252,93
AFTER mx my: 1,6646 | 2,93018

...so the "BEFORE" values should be whole numbers here.

> I have tried the suggested manual formulas, as well as the "invert 
> then transform_point" approach. (Thx, btw.) Neither have done what the 
> cr.device_to_user does. (And I'm likely the reason for any bugs.)
> "How can I take a pair of coordinates in device space into user space 
> (by way of a pre-saved matrix) in some handler that has no access to 
> the Cairo Context?"
> Is my wording of the problem clear? I'm not sure because math. :)
> \d

More information about the cairo mailing list