Android将行尾坐标移动到面部点但保留长度

时间:2017-03-10 14:18:42

标签: java android android-canvas surfaceview

我的行位于

Point lineStart = (screenWidth, screenHeight/2);

我希望将其长度保留为固定数字,即

int lineLength = 100

当用户点击屏幕的任何部分时,我希望将(x,y)值解析为

Point lineEnd;

在保留线的长度的同时,如何确定在给定触点的情况下解析的坐标?提前谢谢!

1 个答案:

答案 0 :(得分:0)

我认为你可以按角度确定坐标。

首先,通过arctan获取角度(使用lineStart和touchPoint的行)

然后,按

以上的角度计算lineEnd
Point getLineEnd(Point lineStart, Point touchPoint, int length) {
    double rad = Math.atan((touchPoint.y - lineStart.y) / (touchPoint.x - lineStart.x));
    Point lineEnd = new Point(lineStart);
    lineEnd.offset(length * Math.cos(rad), length * Math.sin(rad));
    return lineEnd;
}