如果我使用onTouchevent触摸图像,我将如何使用画布绘制一条线。我使用imageview作为背景并根据x / Y co-ords定位它?此外,是否可以检查是否在这些合作伙伴处绘制了一条线?实际上如果我画一条线,它会与图像视图重叠。该线应该在图层内部绘制图像。如何计算图像x,y位置 谢谢,
答案 0 :(得分:0)
public boolean onTouchEvent(MotionEvent event) {
int eventaction = event.getAction();
int X = (int)(event.getX());
int Y = (int)(event.getY());
switch (eventaction ) {
case MotionEvent.ACTION_DOWN:
canvas.drawLine(X,Y,someOtherX, someOtherY, paint):
break;
<snip>
}
如果你想检查一条线是否已经在坐标X,Y处绘制,那么你必须保留 您已经使用开始/停止坐标或斜率/截距绘制的行或列表数组,并执行代数。你有从X,Y到SomeOtherX,Y的当前行。 这将是一个简单的过程,通过每一行,找到两条线相交的位置,如果它们在屏幕上相交。
答案 1 :(得分:0)
仅仅是说这里有更多代码的简短说法,但对你提出的要点并不重要。
如何以斜率截距形式解决两条线的交叉点,比如说这两条线
y = 3x-3
y = 2.3x + 4
在交叉点,它们都具有相同的y坐标值,因此我们将方程设置为彼此相等: 3x-3 = 2.3x + 4
这给了我们一个未知(x)的方程式,我们可以解决: 重新安排在左侧获得x个术语3x - 2.3x = 4 + 3 结合类似术语0.7x = 7 给予x = 10
要找到y,只需在任一行的等式中将x等于10并求解y:
线的方程式y = 3x - 3(两条线都可以)
设定x等于10 y = 30 - 3
给予y = 27
我们现在有x和y,所以交点是(10,27)