如何转置 cairo 上下文或更改轴的方向?
Posted
技术标签:
【中文标题】如何转置 cairo 上下文或更改轴的方向?【英文标题】:How to transpose cairo context or change the orientation of an axis? 【发布时间】:2013-02-16 22:34:04 【问题描述】:我需要想象一个机器人游戏的比赛场地。不幸的是,游戏使用右手坐标系,y 轴指向上方。
有没有办法调整绘图区域的 cairo 上下文,使其匹配这个坐标系?
我可以缩放,平移和旋转,但是我找不到切换y轴方向的方法,这比单独转换所有坐标更方便。
感谢您的任何意见!
【问题讨论】:
【参考方案1】:您可以在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;
【讨论】:
具有相同效果的更简单的东西:cairo_scale(cr, 1, -1);以上是关于如何转置 cairo 上下文或更改轴的方向?的主要内容,如果未能解决你的问题,请参考以下文章