假设我在运行时使用 Graphics 类动态绘制一些矢量形状。例如正方形和圆形。
有没有办法在运行时创建一个新的形状,这两个向量形状重叠?
这类操作在所有矢量设计程序(如 Illustrator、Corel 等)中都很常见……但我在 Adobe 的文档中或其他任何地方都没有找到任何可以通过代码完成的操作。
假设我在运行时使用 Graphics 类动态绘制一些矢量形状。例如正方形和圆形。
有没有办法在运行时创建一个新的形状,这两个向量形状重叠?
这类操作在所有矢量设计程序(如 Illustrator、Corel 等)中都很常见……但我在 Adobe 的文档中或其他任何地方都没有找到任何可以通过代码完成的操作。
尽管 Graphics 类上的绘图操作是根据线、点等来描述的,但就您而言,这只是告诉它要在位图上绘制什么。没有办法在绘制后删除一个形状,除了 clear(),它只会把整个东西擦干净。
我不完全理解为什么,因为必须保留矢量数据 - 例如,在绘制后缩放不会损失质量。
如果您不想学习一些核心数学(对于直线以外的任何东西,您都需要),如果您曾经使用过 PixelBender,这里有一个答案可能会有所帮助:
如何计算 Flash / 动作脚本中形状之间的交集?(访问形状的段和节点?)
如果做不到这一点,如果它只是装饰性的,你可以玩弄遮罩形状(虽然最终可能会很hacky) - 但是,如果你真的想使用交叉点来绘制或描述一个形状,你需要挖掘你的数学书或寻找一个好的图形库。
希望这可以帮助