android - 凸路径 - 如何?

标签 android canvas

谁能解释一下 convex 路径是如何计算的?我需要绘制一些 cubic 和一些线条,但路径显示为非 convex。然而,当我只留下 linescubic 时,它就是 convex。问题是我需要一些非规则形状的背景,并且需要 Convex path 用于阴影轮廓,但无法获得如何将绘图 cubic 与一些线连接起来以制作 凸路径 如果可能的话

最佳答案

A path is convex if it has a single contour, and only ever curves in a single direction.

凸面意味着它在一个方向上保持弯曲/旋转,并且仅在一个方向上。你真的必须确保你所有的角度和曲线加起来。如果你的曲线连接到一条线,它必须有相同的角度或“更凸”,我希望下面的 2 张图片能解决这个问题。

下图不是凸的。这也可能是你的问题。直线连接到曲线,但曲线与直线的角度不同,它会改变它连接的方向。查看线在哪里下降,但它没有继续向下运动,而是突然再次上升。它不会保持一个方向,而是会在直线和曲线相交的地方改变一下。

enter image description here

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

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

enter image description here

我回答是因为我最近遇到了类似的问题,我感受到了你的痛苦。我建议用笔和纸对数学进行双重和三次检查,并使用小的 epsilon 值来解释舍入误差等......你真的必须确定数学,因为如果你的直线和曲线连接只是稍微偏离它将抛出该异常。

对不起我的绘画技巧不好

关于android - 凸路径 - 如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49264082/

相关文章:

android - OpenGL ES 2.0纯色和色值精度问题

javascript - 使用canvas2image将FLOT图表保存到图像文件

android.view.View.systemUiVisibility 已弃用。什么是替代品?

javascript - 使用 html 到 Canvas ,但也有 SVG

javascript - HTML5 Canvas 混合模式

javascript - 在html5 canvas中显示和绘制

javascript - 使用javascript在html上绘制矩形

android - 在 CollapsingToolbarLayout 后隐藏标题

Android 无法将 alpha 应用程序下载到 nexus 7

java - 从 SQLite 表中获取随机值