在MSDN中,区域定义如下
区域是一个矩形、多边形或椭圆(或两个或多个这些形状的组合),可以填充、绘制、反转、加框并用于执行命中测试(测试光标位置)。
那么,Mac OS X 上的区域等价物是什么,它还支持 HRGN 的操作,例如合并区域、对区域进行异或等操作?
在MSDN中,区域定义如下
区域是一个矩形、多边形或椭圆(或两个或多个这些形状的组合),可以填充、绘制、反转、加框并用于执行命中测试(测试光标位置)。
那么,Mac OS X 上的区域等价物是什么,它还支持 HRGN 的操作,例如合并区域、对区域进行异或等操作?
大多数情况下,贝塞尔路径。贝塞尔路径几乎可以描述任何形状,您可以填充、描边和连接它们。
没有 XOR,尽管缠绕规则有时会产生相同的效果。
还有另一种选择:HIShape。
Bézier 路径的缺点:形状只能包含矩形。您可以忘记椭圆和任意多边形。
优点:您可以通过取两个差异的并集或交集与并集的差异来实现 XOR。
您可以通过用它替换上下文的路径然后正常填充和/或描边来绘制形状。