Mittelpunkt von konkaven und konvexen 2D Polygonen finden...

Neue Frage »

jk Auf diesen Beitrag antworten »
Mittelpunkt von konkaven und konvexen 2D Polygonen finden...
Hallo,

ich bin auf der suche nach einer Funktion, die mir den Mittelpunkt eines
2D Polygons ermittelt. Wichtig dabei ist, dass der Punkt innerhalb des
Polygons sein soll. Wenn das Polygon z.B. eine U-Form hat, dann sollte der Punkt
(wenn die Rechte Seite des U's größer ist als die untere und die Linke)
auf der Rechten Seite sein. Ebenso, wenn z.B. ein Polygon eine größere und eine
kleinere Fläche darstellt und diese beiden Flächen natürlich miteinander verbunden sind, sollte es so sein, dass der Mittelpunkt der grösseren Fläche gefunden wird.

Gibt es so etwas in der Art bereits, oder nach was kann ich genau suchen um so etwas zu machen? Oder gibt es dafür einen bestimmten Begriff, wie der 'Mittelpunkt' heisst?

Eine einfache Art davon habe ich schon gefunden, allerdings wird hier nicht
geschaut, ob der Punkt auch wirklich innerhalb des Polygons ist.

register int i, j;
double ai, atmp = 0, xtmp = 0, ytmp = 0;
double xCentroid, yCentroid;
double area;
for (i = anz_punkte_effektiv-1, j = 0; j < anz_punkte_effektiv; i = j, j++)
{
ai = temp[i].x * temp[j].y - temp[j].x * temp[i].y;
atmp += ai;
xtmp += (temp[j].x + temp[i].x) * ai;
ytmp += (temp[j].y + temp[i].y) * ai;
}
area = atmp / 2;
if (atmp != 0)
{
xCentroid = xtmp / (3 * atmp);
yCentroid = ytmp / (3 * atmp);
}


Danke schon mal für Eure Hilfe.

Gruß
Jürgen
Leopold Auf diesen Beitrag antworten »

Ich habe mir dein (unkommentiertes) Programm nicht im einzelnen angesehen. Du verwendest aber die Bezeichung "Centroid", was irgendwie auf "Schwerpunkt" hindeutet. Meinst du also gar nicht den Mittelpunkt einer Figur (einen solchen irgendwie sinnvoll definierten gibt es im allgemeinen gar nicht), sondern den Schwerpunkt?
jk Auf diesen Beitrag antworten »

Ne, ich mein nicht den Schwerpunkt, sondern den irgendwie sinnvoll definierten Mittelpunkt einer Figur.
Mathespezialschüler Auf diesen Beitrag antworten »

Zitat:
Original von Leopold
einen solchen irgendwie sinnvoll definierten gibt es im allgemeinen gar nicht

Da stimme ich Leopold zu. Insofern solltest du, wenn du Hilfe erwartest, schon erwähnen, wie dieser Punkt nun definiert sein soll?! Einen "kanonischen" Mittelpunkt gibt es wohl nicht. Und wir sollten schon alle vom gleichen (und dann auch klar definierten) Punkt reden, sonst macht das Ganze keinen Sinn.
jk Auf diesen Beitrag antworten »

Entschuldigt, wenn ich das etwas zu ungenau beschrieben habe, aber ich weiss nicht ob es für so etwas
einen 'Fachbegriff' gibt. Ich versuch aber mal es etwas genauer zu beschreiben:

Also, ich will eigentlich immer den Punkt rausfinden, an welchem ich den größten Kreis zeichnen kann,
wobei sich der Kreis dann komplett innerhalb der Figur / des Polygons befindet.

Ich habe hier mal noch eine Beispieldatei angehängt, die das Bildlich noch verdeutlichen soll. Der Hilfspunkt in
der mitte ist der Punkt, den ich finden will. Ich weiss auch, in der rechten Figur könnte dieser Punkt ja auch
weiter oben oder unten sein, aber da ist es dann eigentlich egal.Hauptsache ich kann an diesem Punkt einen
Kreis mit dem max. Radius zeichnen.

Ich bin für jeden Tipp dankbar.

[attach]7897[/attach]
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »