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

最佳答案

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


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

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

android - 凸路径-如何?-LMLPHP

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

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

android - 凸路径-如何?-LMLPHP

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

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

08-03 21:04