我想在开罗旋转文本,为此我使用了一个函数:cairo_rotate(m_cr, angle)
,以角度弧度旋转。现在要取消设置角度以开始普通文本渲染,我应该调用cairo_rotate(m_cr, - angle) function or cairo_rotate(m_cr, 0.0)
吗?我的意思是cairo中的旋转是累积的吗?
旋转(以及所有其他变换)是累积的。
然而,IMHO最好使用cairo_save(cr); cairo_rotate(cr, angle);
和后来的cairo_restore(cr);
来消除这种效果。这也适用于其他类型的转换,重置当前剪辑和当前源。事实上,cairo_restore
恢复了除当前路径之外的所有内容。