凸路径 - 如何?

时间:2018-03-13 19:08:02

标签: android canvas

有人可以解释我如何计算convex路径吗?我需要绘制一些cubic和另外一些行但是路径显示为非convex。但是,当我只留下linescubic时,则convex。问题是我需要一些非常规形状的背景,并且需要Convex path用于阴影轮廓,但无法将绘图cubic与某些行连接起来convex path如果它甚至可能

1 个答案:

答案 0 :(得分:5)

  

如果路径具有单个轮廓,则路径是凸的,并且只能在单个方向上弯曲。

凸面意味着它在一个方向和一个方向上保持弯曲/旋转。你必须确保你所有的角度和曲线加起来。如果您的曲线连接到一条线,它必须具有相同的角度或“更凸”,我希望以下两个图像将清除它。

下面的图片是凸。这也可能是你的问题。该线连接到曲线,但曲线与线的角度不同,它将改变连接的方向。看到线路向下的位置,但不是继续向下运动,它突然再次上升。而不是保持一个方向,它将在线和曲线相遇的时刻发生变化。

enter image description here

为了清晰起见,上面的图片被夸大了,但即使线和曲线之间的连接中的小错误也会触发错误。

下一条线连接到角度更陡的曲线。这是凸的,不会成为问题。了解整个轮廓如何在一个方向上保持单个运动,具体取决于您沿着哪个方向继续向左/向右转动。

enter image description here

我回答是因为我最近遇到了类似的问题,我感到很痛苦。我建议使用钢笔和纸张进行双倍和三倍检查数学,并使用小的epsilon值来计算舍入误差等...你真的必须确定数学,因为如果你的线和曲线连接只是很少它将抛出该异常。

对不起我糟糕的涂装技巧