2017-03-10 1 views
0

je une ligne placée àfin de mouvement Android de la ligne de coordonnées pour faire face point, mais conserver la longueur

Point lineStart = (screenWidth, screenHeight/2); 

Je veux conserver sa longueur comme un nombre fixe, soit

int lineLength = 100 

Lorsque l'utilisateur TAPS une partie quelconque de l'écran, je souhaite analyser (x, y) des valeurs de

Point lineEnd; 

Comment déterminer les coordonnées pour analyser donné un point de contact tout en conservant la longueur de la ligne? Merci d'avance!

Répondre

0

Je pense que vous pouvez déterminer les coordonnées par angle.

Dans un premier temps, obtenir l'angle par arctan (ligne avec linestart et touchPoint)

Et puis, calculer lineEnd par angle au-dessus

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; 
}