Hallo,
wie kann man eine Form so skalieren, dass sie nicht mit ihrer Originalform überlappt?
Ich erstelle gerade eine kleine Software, mit der man Linien erstellen und verbinden kann, sodass sich daraus freie Formen ergeben. Durch einen Klick auf eine Form kann man daraus ein 3D-Modell erstellen, z wird mithilfe der Kreis-Funktion berechnet, x und y bewegen sich in kleinen Schritten auf den Mittelpunkt der Form zu. Am Ende werden die Punkte mit dem jeweiligen Mittelpunkt der Vorder- bzw. Rückseite verbunden. Mein Algorithmus funktioniert einwandfrei bei konvexen Formen wie Kreisen. Aber bei konkaven Formen liefert er ein unschönes Ergebnis. Wenn man die inneren Punkte des 3D-Modells auch als Form betrachten würde, dann würde man sagen, dass diese mit ihrer Originalform überlappen. Wie kann man das verhindern? Liege ich richtig in der Annahme, dass das Ganze etwas mit Differentialgleichungen und der Zeta-Funktion zu tun hat?
Und ich habe noch ein Problem: Selbst, wenn ich es schaffe, dass sich die Punkte an die äußere Form anpassen, fehlt mir immer noch eine Dimension, um die Punkte überlappungsfrei miteinander zu verbinden. Das Ganze sollte am Ende etwa so aussehen (grobe Skizze):
Wie mache ich das?
lg
RLe
Punkte: 10
Aber sobald ich eine konkave Form mache, und versuche, diese in 3D umzuwandeln, kommt bsw. sowas dabei raus:
https://www.bilder-upload.eu/bild-f935a6-1601014048.png.html
Weil einfach die Verbindungslinien zwischen einzelnen Punkten mit der Form überlappen. Deswegen muss ich wissen, wie die Form ohne Überlappung skalieren kann. Aber einen Algorithmus zu schreiben, der das erkennt, wäre vielleicht zu aufwendig. Und vor allem, damit nicht am Ende ein Loch übrig bleibt, brauche ich Linien wie die bei der Form oben. Leider finde ich dazu nichts oder kenne vielleicht die richtigen Suchbegriffe nicht. ─ rle 25.09.2020 um 08:16
- das Programm kann die größten und kleinsten x- bzw. y-Werte einer Form ermitteln und daraus den Mittelpunkt bestimmen, mit dem ich bereits arbeite
- das Programm kann durch Aufsummieren der Entfernungen der einzelnen Punkte zueinander den der Form Umfang ermitteln
- das Programm könnte alle Steigungen und die jeweiligen Winkel zum Mittelpunkt auflisten, falls es sich als nötig erweisen sollte
Aber was nützt mir das? Meine erste Idee war, zwei Koordinatesysteme zu erstellen, jeweils eines mit der x- bzw. y-Achse als vertikale Achse und der einer Längen-Achse von 0 bis zum Umfang der Form. Dort könnte ich dann alle Punkte der Punkteliste einzeichnen. Aber irgendwie bringt mich das auch nicht weiter. ─ rle 25.09.2020 um 08:56
www.informatik-fragen.de ─ feynman 25.09.2020 um 06:29