微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在开罗重设当前点?

如何解决如何在开罗重设当前点?

从cairo文档中,我可以看到某些功能(例如,文本toy-API cairo_show_text())需要设置当前点。 我们可以使用cairo_move_to()设置当前点,然后调用cairo_show_text()它将光栅化所需位置的文本。

顺便说一句,这引起了一个错误,因为在光栅化文本之后,我正在抚摸一条路径(该路径(使用对cairo_move_to()的初始调用来设置文本的当前点)具有错误的点。

我通过在调用cairo_stroke()之后立即调用cairo_show_text()解决了该错误,由于它可以重置当前点,因此似乎可以正常工作。

似乎调用cairo_close_path()而不是cairo_stroke()并没有帮助。它没有重置当前点。我认为这很奇怪。为什么?

我的最后一个问题是:是否有适当的方法来重置当前点?我认为应该有。

解决方法

来自https://www.cairographics.org/manual/cairo-Paths.html#cairo-new-path

cairo_new_path()

清除当前路径。通话后将没有路径,也没有当前点。

出于完整性考虑:还有此功能不能清除当前路径:

来自https://www.cairographics.org/manual/cairo-Paths.html#cairo-new-sub-path

cairo_new_sub_path()

开始一个新的子路径。请注意,现有路径不会受到影响。通话之后将没有当前点。

在许多情况下,此调用是不需要的,因为新的子路径通常以cairo_move_to()开始。

使用cairo_new_sub_path()调用之一开始新的子路径时,对cairo_arc()的调用特别有用。这使事情变得更容易,因为不再需要为调用cairo_move_to()手动计算弧的初始坐标。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。