我有点列表和控制点列表来绘制贝塞尔曲线。 请让我知道如何计算贝塞尔曲线的边界矩形。
var pointsList = [CGPoint(34, 23), ... , CGPoint(23, 85)]
var controlPoints = [CGPoint(45, 34), ..., CGPoint(55, 99)]
答案 0 :(得分:2)
通常不是真正的难题,涵盖在http://pomax.github.io/bezierinfo/#boundingbox:
在此,如果您使用高阶贝塞尔曲线,则只有第2步可能有点棘手。一旦你的曲线由四个以上的点组成,你就不能使用符号数学来找到根,并且它更容易通过衍生曲线运行并看到结果坐标的值接近于将它们视为近似根。
你的图形看起来只是一系列连接的三次贝塞尔曲线,在这种情况下,根发现很容易(衍生物将是二次曲线,你学习如何找到高中使用的根) the quadratic equation),方框程序只是"计算每个三次曲线部分的边界框,当你完成时,完整的边界框只需使用所有单个框中的最小/最大值"。