gpt4 book ai didi

Android:确定 Android 路径占用的像素

转载 作者:行者123 更新时间:2023-11-29 14:07:14 25 4
gpt4 key购买 nike

我有一个绘图程序,用户可以在其中用手指描绘,方式类似于 FingerPaint程序中,绘制了一系列 Path 来表示线条。

现在,我正在做一些碰撞检测,以允许用户进入“删除”模式并删除选定的行,并试图确定如何跟踪 路径 的各个像素。本质上,我正在跟踪包含 PathRectF,如果 RectF 在删除模式下相交,我想然后逐像素相交测试。因此,我需要创建一些用于存储像素的结构,可能是一个二维数组,其中每个元素都是 1 或 0,具体取决于底层像素是否被绘制的 Path 占用。

这是我正在努力解决的最后一部分。当用户画线时,我通过 Path.quadTo() 将传递的 X/Y 值作为二次贝塞尔曲线的控制点输入。问题是,虽然 Path 使用这些点来表示一条连续的线,但我只是从触摸设备输入了不连续的 X/Y 点。本质上,我需要一种方法来复制 Path 对象本身正在做的事情,并获取传递的 X/Y 点并将其插值到连续曲线中,但作为一组 X/Y 坐标而不是一个 Path 对象...

有什么入门指南吗?

谢谢

编辑/更多:

好的,正如我提到的,每个 Path 都是(大致)使用 FingerPaint 中的方法创建的,这意味着它是一系列段,其中每个段都是二次贝塞尔曲线。鉴于我在将这些曲线段添加到较大路径时知道 P0、P1 和 P2,我可以确定沿曲线的 X/Y 坐标:

enter image description here

所以,我现在唯一的问题是确定一组“连续”的相邻 X/Y 坐标,这样这组坐标中就没有间隙,用户的手指可能会穿过而没有碰到手指。这意味着以 1 个像素间隔确定每个 X/Y 点。由于上面的公式将以无限数量的间隔产生点,给定 T 的值范围从 0 到 1,知道如何以编程方式确定将以 1 像素间隔产生点的正确 T 值吗?

最佳答案

我会不使用曲线或像素,而只使用线来进行所有碰撞检测,找到相交线要容易得多,即用户滑动的两个连续 x/y 坐标的交点,以及现有线的线

关于Android:确定 Android 路径占用的像素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6100547/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com