Punkte in einem Kreis-Abschnitt berechnen



  • im oberen beispiel (erster post)

    Startpunkt = Mittelpunkt



  • Achso. Bleibt immer noch die Frage, wo beginnt dein Kreisbogen auf dem Kreis?

    Und damit ich das richtig verstanden habe: Du willst alle Pixelpunkte
    (also Punkte mit ganzen Koordinaten), die diesen Kreisbogen ausfüllen, bestimmen
    und mit diesen ein riesiges Array füllen können. Oder willst du "nur" die Anzahl
    dieser Pixelpunkte bestimmen?



  • Jeden einzelnen Punnkt möchte ich habe. Aber das ist meiner meinung nach eine unendlichkeits berechnung, da wenn der Winkel und der Radius flexibel ist, ändert sich das Verhältniss (Anzahl der Punkte) undefiniert. Oder nicht?



  • Die Anzahl der Punkte mit ganzzahligen Koordinaten ist auf jeden Fall eine wohl definierte natürlich Zahl oder 0.

    Du hast meine Frage noch nicht beantwortet: Wo beginnt der Kreisbogen auf deinem Kreis?



  • Am ende des Radius auf der X-Achse, Da beginnt der Kreisbogen. Also ich habe hier zig Skizzen, aber finde einfach keine Gemeinsamkeit wir man auf die Punkte schließen kann.



  • Wenn du mit x-Achse nur einen Vektor meinst der parallel ist zu ihr, dann weiß
    ich endlich was du machen willst.

    Ich verstehe aber nicht warumGNU-Fans Ansatz nicht performant sein soll?
    Wenn du wirklich jeden Punkt mit ganzzahligen Koordinaten wissen willst, dann
    musst du halt jeden Punkt aufschreiben. Und das dauert nun mal so lange wie es
    dauert. Was willst du daran effizienter machen?

    Beim Mittelpunkt beginnen und in einer Schleife die x-Koordinate um 1
    erhöhen.
    Dann y um eins erhöhen. Berechnen wo es jetzt los geht => x also neu berechnen
    und dann wieder bis zum Ende, was auch neu berechnet werden muss, durchiterieren.



  • Hallo, danke erstmal für die Hilfe. Um zu vermeiden das wir an ein ander vorbei reden, hier mal ein Beispielbild: http://upload.wikimedia.org/wikipedia/de/e/ef/Kreissektor.png

    Ich möchte nun alle Punkte in der Pinken Fläche (Ganzzahlen) berechnen.

    Gegeben habe ich den Mittelpunkt. Den Radius und den Winkel.

    So wie ich das richtig verstehe gibt es da keine "Faustformel" oder? Sprich ich kann das nur Geometrisch (ablesen) oder In einem Programm mit Abtasten lösen?



  • Natürlich mit Abtasten. Diese sollte natürlich ein bisschen intelligent sein,
    aber was andere bleibt dir nicht übrig.

    Ich geb mal folgendes Beispiel:
    Ich schreibe auf einen Zettel 100 Zahlen mit einem Stift.
    Du sollst sie auf dein Blatt schreiben mit demselben Stift.
    Die einzige Möglichkeit ist, sie abzuschrieben. Jede einzelne. Da gibts keine
    Optimierung. Oder?

    Für was brauchst du eigentlich alle Punkte?



  • So habe das jetzt, mal Probiert, nur habe ich im Moment noch ein Problem und das ist die Prüfung. Mein Programm tastet schonmal soweit alles ab, nur ist die Entscheidung noch fehlerhaft, problem ist, ich berücksichtige den Winkel nicht.

    Beispiel: Winkel 45° Radius 2

    Nun die Abtastung: x+1, y+1 ist im Kreissegment, x+2, y+1 ist es nicht. Wie kann ich das berechnen unter Berücksichtigung des Winkels. Also mit <= radius ist da nicht, weil dann wäre x, y+2 auch im Segment und das ist falsch, da der Winkel keine 90 sondern 45 beträgt. Hat da jemand eine idee?



  • Dann berechne den Winkel zwischen dem Vektor der x-Achse und Vektor von M nach P.

    M - Mittelpunkt
    P - Pixel

    Winkel = atan2(P.y - M.y, P.x - M.x)


Anmelden zum Antworten