我在屏幕上绘制了一个虚拟标尺。当触摸事件发生在生长的矩形内时,我希望能够像上面的蓝线一样绘制一条直线。但由于触摸不能 100% 笔直,因此运动可能会像红线一样。这就是为什么我设置一个矩形来监听所有附近的触摸事件,然后画一条蓝线。
我目前有
mRulerRect.set(mRulerCenter.x - mRulerBitmap.getWidth() / 2,
mRulerCenter.y - mRulerBitmap.getHeight()),
mRulerCenter.x + mRulerBitmap.getWidth() / 2,
mRulerCenter.y);
mPath.addRect(mRulerRect, Path.Direction.CCW);
mRulerMatrix.setRotate(mRulerAngle, mRulerCenter.x, mRulerCenter.y);
mPath.transform(mRulerMatrix);
mRegions.setPath(mPath, new Region(mRulerRect));
然后我检查触摸是否发生在棕色矩形内mRegions.contains(x,y)
。到目前为止,它非常适合触摸检测,但我现在遇到的问题是如何画一条直线。我尝试修复 X 点然后计算 Y。当标尺水平时它工作正常,然后从水平转向垂直时开始表现得很奇怪。我不知道如何做到这一点。请帮忙!谢谢你。