Come creare un cerchio ridimensionabile con eventi touch utente?
-
23-12-2019 - |
Domanda
Sto cercando di creare una forma circolare che verrà ridimensionata su OnTOUchevent .
Ho seguito rettangolo ridimensionale post, ma penso che a causa della mancanza di conoscenza della matematica, non sto ottenendoCrea cerchio riserbile.
Ho provato a cambiare
canvas.drawRect(
left + colorballs.get(0).getWidthOfBall() / 2,
top + colorballs.get(0).getWidthOfBall() / 2,
right + colorballs.get(2).getWidthOfBall() / 2,
bottom + colorballs.get(2).getWidthOfBall() / 2, paint);
.
a canvas.drawcircle () ;Crea il cerchio ma non proprio quello che volevo.
Puoi per favore dimmi che c'è qualcosa come questo già implementato o quali punti dovrei seguire per convertire questo esempio di rettangolo su cerchio ridimensionabile.
Soluzione
Allora, il centro del cerchio sarà:
float cx = (left + right) / 2f;
float cy = (top + bottom) / 2f;
.
- abbastanza ovvio.Il raggio può essere calcolato utilizzando Math.hypot()
:
float radius = Math.hypot(top - bottom, right - left) / 2f;
.
Così, abbiamo il centro e il raggio per disegnare un cerchio:
drawCircle(cx, cy, radius, paint);
. Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow