凸路径-如何?

use*_*889 1 android canvas

有人可以解释一下convex路径的计算方法吗?我需要画一些cubic线,但是路径显示为non convex。然而,当我只能留下lines或只是cubic它是那么convex。问题是我需要一些非规则形状的背景,并且需要Convex path阴影轮廓,但即使有可能,我也无法获得如何将绘图cubic与一些线连接convex path起来的方法

Dav*_*jak 5

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

凸面表示它仅在一个方向上保持弯曲/旋转。您确实必须确保所有角度和曲线相加。如果您的曲线连接到一条直线,则它必须具有相同的角度或“更凸”,我希望下面的2张图像可以清除此问题。

下图不是凸的。那也可能是您的问题。直线连接到曲线,但是曲线的角度与直线不同,它将改变连接的方向。查看行下降的位置,但没有继续向下运动,而是突然再次上升。代替保持一个方向,它会在直线和曲线相交的瞬间改变。

在此处输入图片说明

为了清晰起见,上图放大了,但是即使直线和曲线之间的连接中出现很小的错误也会触发错误。

下一条线连接到具有更陡峭角度的曲线。这是凸的,不会有问题。查看整个轮廓如何在一个方向上保持单一运动,具体取决于您沿哪个方向运动,它始终向左/向右旋转。

在此处输入图片说明

我之所以回答是因为最近我遇到了类似的问题,我感到您很痛苦。我建议使用笔和纸对数学进行两次和三次检查,并使用较小的epsilon值来考虑四舍五入等问题。您确实必须精通数学,因为如果您的直线和曲线连接距离很小会抛出该异常。

对不起,我的绘画技巧不好