【问题标题】:How to reset the current point in cairo?如何重置开罗的当前点?
【发布时间】:2020-08-14 15:38:53
【问题描述】:

从 cairo 文档中,我可以看到一些函数,例如 Text toy-API cairo_show_text() 需要设置当前点。 我们可以用cairo_move_to()设置当前点,然后调用cairo_show_text(),它将把文本光栅化到想要的位置。

顺便说一句,这导致了一个错误,因为在对文本进行光栅化后,我正在抚摸一条路径,该路径(最初调用 cairo_move_to() 以设置文本的当前点)有错误的点。

我通过在调用cairo_show_text() 后立即调用cairo_stroke() 解决了这个错误,它似乎可以工作,因为它重置了当前点。

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

我的最后一个问题是:是否有正确的方法来重置当前点?我觉得应该有。

【问题讨论】:

    标签: cairo pycairo


    【解决方案1】:

    来自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_arc() 调用之一开始新的子路径时,调用cairo_new_sub_path() 特别有用。这使事情变得更容易,因为不再需要手动计算弧的初始坐标来调用cairo_move_to()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-25
      • 2012-09-01
      相关资源
      最近更新 更多