Re: Cairo transformations. Old bug that has been solved?

Dov Grobgeld <[email protected]>
Newsgroups gmane.comp.lib.cairo
Message-ID <CA++fsGH0OgLd4GwWdCczDk=1RDE-b3Qst2i0aKfe65CP9oK6fw@mail.gmail.com>
I forgot to mention that my versions are:

cairo-1.10.2
pycairo-1.8.

running under Fedora 14.

On Sun, Oct 9, 2011 at 17:21, Dov Grobgeld <[email protected]> wrote:

> I'm trying to understand the affine transformations in cairo and I'm
> currently quite confused. I don't get the same result when using
> matrix_multiply() as I get when doing the matrix multiplications "manually"
> through numpy:
>
> Consider the following python code:
>
> import cairo
> import numpy as np
>
> # routine to convert a cairo transformation to a numpy matrix
> def c2n(c):
>     return np.matrix([[c[0],c[1],c[4]], [c[2],c[3],c[5]], [0,0,1]])
>
> # Create two cairo matrices for rotation and translation
> mr = cairo.Matrix() ; mr.rotate(np.pi/6)
> mt = cairo.Matrix() ; mt.translate(1,1)
>
> # Multiply these together and print the result
> print mt.multiply(mr)     # Yields  cairo.Matrix(0.866025, 0.5, -0.5,
> 0.866025, 0.366025, 1.36603)
>
> # Multiply these together using numpy. Note order change corresponding to
> first applying mr and then mt
> print c2n(mr)*c2n(mt)   # Yields matrix([[ 0.8660254,  0.5      ,
> 1.3660254],
>                         #                [-0.5      ,  0.8660254,
> 0.3660254],
>                         #                [ 0.       ,  0.       ,  1.
> ]])
>
> Note that the x0 and the y0 values of the result is swapped in the cairo
> input compared to the numpy output.
>
> What is even more confusing to me is that the c-source code in git seems to
> be ok.
>
> I can see several possible reasons:
>
>    1. From looking at this problem for too long I'm making a wrong
>    assumption.
>    2. The c-code has recently been updated to fix a bug that I have in my
>    cairo version.
>    3. There is a bug in the python binding.
>
> Before I probe this further, does someone have any idea of what is going
> on?
>
> Thanks!
> Dov
>
>

--
cairo mailing list
[email protected]
http://lists.cairographics.org/mailman/listinfo/cairo
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.