在本系列的第一部分中,我们介绍了路径的概念,并了解了如何创建 GskPath。但路径不仅仅于此。
路径点
当你沿着路径的轨迹移动时,路径的许多有趣属性会发生变化。要查询这些属性,我们首先需要一种方法来确定我们感兴趣的路径上的点。
GTK为此提供了GskPathPoint结构,并提供了许多函数来获取它们,例如gsk_path_get_closest_point(),它允许你查找路径上最接近给定点的点。
一旦你拥有一个 GskPathPoint,你就可以查询该点路径的属性。最基本的属性是位置,但你也可以获取切线、曲率或从路径开始的距离。
输入
在用户界面中使用路径时,另一个有趣的问题是:
鼠标指针是否悬停在路径上?
如果你想高亮显示指针悬停的路径,或者如果你想对用户点击路径做出反应,你需要这个问题的答案。
对于填充的路径,GTK使用gsk_path_in_fill()方法提供答案。
对于描边的路径,提供 100% 准确的答案要复杂得多(特别是如果描边使用虚线模式),但我们可以提供一个近似的答案,通常也足够好:如果到路径上最近的点的距离小于线宽的一半,则该点位于描边内。
展望
本系列的下一部分将探讨使用路径进行渲染。