Si dovrebbe prendere posizione della vista con View.getX() e View.getY() ottenere x
e y
dell'angolo in alto a sinistra e anche assumendo Sai il raggio (o in grado di ottenere larghezza/altezza della vista per determinare raggio). Dopo di che, ottenere xTouch
e yTouch
utilizzando MotionEvent.getX() e MotionEvent.getY() e verificare se:
double centerX = x + radius;
double centerY = y + radius;
double distanceX = xTouch - centerX;
double distanceY = yTouch - centerY;
boolean isInside() {
return (distanceX * distanceX) + (distanceY * distanceY) <= radius * radius;
}
La formula è giusta interpretazione della geometria scuole per determinare se punto è all'interno dell'area di cerchio o no. Fare riferimento a circle equation for Cartesian coordinates per ulteriori dettagli.
Valori spiegazione è:
(x + radius)
e (y + radius)
è il centro del cerchio.
(xTouch - (x + radius))
è la distanza dal punto di contatto per centrare da X.
(yTouch - (y + radius))
è la distanza dal punto di contatto al centro da Y.
ringrazio molto, mi aiutano molto – Camus
C'è qualcuno in grado di spiegare questa logica per favore? Funziona alla grande, sarebbe ancora meglio con qualche spiegazione della logica –
@JoeMaher ha aggiunto ulteriori dettagli sulla spiegazione della geometria – sandrstar