如何转置cairo上下文或更改轴的方向?

时间:2013-02-16 22:34:04

标签: gtk cairo gtkmm

我需要想象一个机器人游戏的比赛场地。不幸的是,游戏使用右手坐标系,y轴朝上。

有没有办法调整绘图区域的cairo上下文,使其与此坐标系匹配?

我可以缩放,平移和旋转,但是我无法找到一种切换y轴方向的方法,与单独转换所有坐标相比,这会更方便。

感谢您的任何意见!

1 个答案:

答案 0 :(得分:4)

您可以定义cairo_matrix_t中的每个字段:

cairo_matrix_t flip_y;
cairo_matrix_init(&flip_y, 1, 0, 0, -1, 0, 0);
cairo_set_matrix(cr, &flip_y);

请记住如何应用转型:

x_new = xx * x + xy * y + x0;
y_new = yx * x + yy * y + y0;