Kreis Hitbox

Hallo
ich möchte ein kreisförmiges “Schiebepad”(Touchscreen) machen:
Kreis
Kreis Innen Kreis
Kreis Kreis Kreis
Kreis
Der innenkreis soll geschoben werden können, ABER nicht außerhalb des Außenkreises.
Wie dedektiere ich, ob der innenkreis den Außenkreis von innen behrührt(Also ende des Bewegungsraums ist) ?

bitte einmal mehr an die richtige Area denken, es geht um graphische Oberflächen, denke ich, Swing?
jedenfalls nichts zu Java-Grundlagen, egal wie einfach in Swing, egal wie sehr du das auf deine Programmierfähigkeiten beziehst


egal womit du arbeitest, ein Thread für automatische Bewegung oder allein nach MouseListener,
egal ob selbst gezeichnet oder echte JComponent verschoben, immer hast du Positionen, Länge, Breite, Radius für Kreise,

es ist simpler und lehrreicher da alles selber zu rechnen als auf fertige Komponenten mit Schnitt-Methoden zu hoffen,
deren Bedienung stumpsinnig zu lernen
für Kreis freilich evtl. etwas schwerer/ anders zu rechnen als bei Rechtecken, dafür auch schwerer fertiges zu finden


als ein Hinweis auf Mathematik: in einem äußeren Kreis A von Radius 5 = Durchmesser 10 darf ein innerer Kreis B von Radius 1 = Durchmesser 2 maximal die Weite 4 vom Mittelpunkt von A entfernt sein, egal in welcher Richtung,

‘Abstand zwischen zwei Punkten in 2D’ ist spätestens etwas für Suchmaschine, falls nicht idealerweise bereits bekannt,
Pythagoras kommt da ins Spiel, die Schule war tatsächlich auch sinnvoll

zu jedem Zeitpunkt also, bei Bewegung hin zu einer neuen Position, ausrechnen ob erlaubt und ggfs. abbrechen,

Zusatzpunkte für Begrenzung: wenn man sich rechts bei 3 Uhr in der Uhr befindet,
die Maus außerhalb des erlaubten Bereichs und hoch auf 12 Uhr, immer noch außerhalb, bewegt,
etwa mit gedrückter Maustaste, dann den inneren Kreis nicht bei 3 Uhr stehen lassen sondern
auch mitbewegen, nur am erlaubten Rand entlang,
richtigen Winkel zum Mauspunkt ausrechnen und maximalen erlaubten Radius wählen

Gut danke, habs jetzt.

Kreis
Kreis Innen Kreis
Kreis Kreis Kreis
Kreis

Was zum??? Respekt an SlaterB wenn du weißt was der TO gemeint hat :smiley:

wissen ich wissen wissen
Respekt du klar klar

edit:
erst jetzt nachgeschaut, mit Code-Tag ‘ein wenig’ deutlicher:


         Kreis
Kreis                     Innen        Kreis
Kreis                    Kreis        Kreis
   Kreis

Apropo, wie rechnest du den winkel aus? (Oeder ihr, bei sowas?)
Ich hatte da letztens wieder ganz viel gefrickel gehabt, bin da auf die interessante methode atan2(y, x) gestossen… das macht echt vieles einfacher.

alles nur spezielles Wissen,
mit normalen sin/ cos im rechtwinkligen Dreieck, wahrscheinlich Fallunterscheidung für die 4 Sektoren geht es erstmal auch,
http://elektroniktutor.oszkim.de/fachmathematik/winkel.html
wenn besser dann umso besser,

weitaus wichtiger als der konkrete Rechenweg (sofern korrekt) sind Handlings-Unterschiede wie den Code ist eine Methode wegzukapseln,
dann kann man es später mal austauschen oder auch nicht, fast nebensächlich (sofern die ganze Zeit korrekt gerechnet)