abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 
abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 
Programmierung
Alles über Programmierung in GDL und Python

näherung einer ellipse mit kreisbögen

zzyzx
Newcomer
eine ellipse kann man ja sehr einfach durch strecken eines kreises in nur eine richtung erhalten.
punkte auf einer ellipse erhält man auch ziemlich einfach mit sinus/cosinus
wenn man aber die ellipse aber in gdl als näherung aus kreisbögen haben will, wirds schwerer. kennt jemand vielleicht einen einfachen weg mittels erweiterter statuswerte oder so?
34 ANTWORTEN 34
Anonymous
Nicht anwendbar
Bin mir nicht sicher, aber über Statuswerte wüsste ich keine schnelle Lösung.

Ich glaube der Ansatz müsste über die Koordinatengeometrie erfolgen.

Kreisformel: R** = x**+y**
daraus ergibt sich: y = SQR (R**-x**) oder y = R+COS(winkel)
dann mit MUL y zur Ellipse dehnen

aber bitte frag mich nicht weiter, es ist schon lange her dass ich da mal so richtig durch war.

Im GDL Kochbuch sind auf Seite 2.41 und 2.42 längere mathematische Abhandlungen über Bogenformen zu finden.
Anonymous
Nicht anwendbar
y = R*COS(winkel)
zzyzx
Newcomer
... nun ja, ich hab mir da gedacht, es gibt vielleicht eine einfache lösung, um aus der ellipse eine näherungsform mit kreisbögen zu machen, und zwar so, wie wenn man eine ellipse zeichnet, dann den zauberstab anlegt und eine schraffur erzeugt. die schraffur kennt ja keine ellipsenlinie als begrenzung sondern nur kreisbogen und gerade, deshalb macht archicad eben die näherung.
es scheint aber doch dafür etwas rechenarbeit nötig zu sein
:verzweifelt:
zzyzx
Newcomer
... dann halt doch so (mit ohne kreisbogen 😉 )
</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">Code:</font><hr /><pre style="font-size:x-small; font-family: monospace;">n = 30

for i = 1 to n
w = i*360/n
put a/2*cos(w)
put b/2*sin(w)
put 79
next i

prism_ n,0.1,
get (n*3)
Anonymous
Nicht anwendbar
http://www.a-null.com/ubb/ultimatebb.php?ubb=get_topic;f=6;t=000286

hab vor 1 1/2 monaten auch keine antwort drauf bekommen 😞
das einzige was ich geschafft habe war das element welches mir mit fixpunkten die ellipsenform vorgib t, welche ich dann mit splines nachziehen kann. den kurvenverlauf als linie hab ich mit keinem befehl geschafft.
zzyzx
Newcomer
ja, stimmt, damals ist mir auch nix eingefallen. wir können ja mal zusammentragen, was wir bisher an wissen haben, vielleicht bekommen wir ja eine lösung hin...
.
jetzt wirds ein bisschen mathematisch:
- punkte auf der ellipse können wir ja schonmal bestimmen (siehe oben)
- wenn wir einen kreisbogen an diesem punkt anfangen wollen, brauchen wir auch die steigung an der stelle, die haben wir jedoch noch nicht, kann man aber wahrscheinlich mit dem seitenverhältnis der ellipse und der normalen steigung in einem kreis rausbekommen. (ideen?)
- die verteilung der punkte für diese näherung mit kreisbögen ist nicht gleichmässig: man kann den an irgendeiner stelle begonnenen kreisbogen nicht irgendwo aufhören lassen, sondern nur da, wo er sich mit der ursprungsellipse trifft und auch dieselbe steigung wie diese an der stelle hat, sonst wird die fortsetzung mit einem weiteren kreisbogen nix.
... komplizierte sache. ich bin mir nicht sicher, ob der ansatz soweit was bringt...
:confused: :confused:
Anonymous
Nicht anwendbar
Na ja, die Steigung erhalte ich aus der 1. Ableitung.
Anschliessend die 1. Ableitung der Ellipsengleichung und der Kreisgleichung in ein Gleichungssystem und die Lösung suchen.
Viel Vergnügen.

Hätte noch eine Idee
Was passiert eigentlich wenn ich im Grundriss eine Ellipse zeichne und das GDL Skript von AC automatisch schreiben lasse?
zzyzx
Newcomer
</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">Zitat:</font><hr /><font size="2" face="Verdana, Helvetica, sans-serif"> Was passiert eigentlich wenn ich im Grundriss eine Ellipse zeichne und das GDL Skript von AC automatisch schreiben lasse? erwartungsgemäss das:
</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">Code:</font><hr /><pre style="font-size:x-small; font-family: monospace;">ADD2 -29.5239, -13.9669
ROT2 0.0
MUL2 4.971619, 2.40731
CIRCLE2 0.0, 0.0, 1.0
DEL 3
aber egal, ich dachte, es gibt vielleicht eine einfache lösung, aber das mit den gleichungssystemen wird mir jetzt doch zu kompliziert...
😉 :winken:
Frank Beister
Mentor
Das Thema Ellipse kommt immer mal wieder. Auch Andreas wollte vor einiger Zeit in regelmäßigen Abständen Profile in eine elliptische Wand zeichnen. Dadurch angeregt habe ich mal ein Objekt angefangen, das allgemeine Ellipsendaten zu frei definierbaren Ellipsen ausgeben sollte. Das Ergebnis steht im Open GDL Board zum download.. Alles noch sehr Alpha-mäßig, aber ein Anfang.

Bei der Suche nach Infos bin ich auf verschiedene Quellen gestoßen. Werde sie heute Abend mal sichten und ggf. posten. In jedem Fall bin ich sehr schnell zu dem Ergebnis gekommen, daß die Ellipse deutlich einfacher aussieht, als sie sich mathematisch beschreiben läßt. Eine immer wiederkehrende Quelle zur Lösung mathematischer Probleme ist mir die Seite von Paul Bourke. Auch zur Ellipse hat er einen Eintrag.
Die Idee mit der Ableitung ist sicher der richtige Weg, doch sieht man auf dieser website schon, daß das nicht ganz trivial wird. Vielleicht finden wir im Netz ja eine fertige Gleichung/Funktion/Relation. Im Netz verfügbare Versionen von Mathematica und anderen 'Computermathematikern' liefern allerdings, mit dieser Aufgabe betraut, heftigste Ergebnisse (Formel über 1 1/2 DIN A4 Seiten).

Ich habe auch mal als Tutorial für eine interne Schulung einen Tisch mit Bestuhlung entwickelt, bei dem die Stühle gleichmäßig um den Tisch verteilt wurden. Die Tischform war frei wälbar: rechteckig, rund, dreieckig und elliptisch. Um die Stühle orthogonal zur Tischkante auszurichten mußte ich auch die Neigung der Ellipse in einem Punkt ermitteln. Ich habe das 'iterativ' gelöst: Links und rechts eines gesuchten Punktes bestimme ich in möglichst minimalem Abstand die Koordinaten von 2 Hilfspunkten. Die Verbindung zwischen den beiden Punkten beschreibt näherungsweise die Steigung der Ellipse in diesem Punkt. Der Normalenvektor zu der Strecke bestimmt dann die Ausrichtung. Je nach Exzentrizität und Größe ergibt sich ein größerer oder kleinerer Fehler. 'A cheap trick', ich weiß.

Die Idee gemeinsam hier Wissen zusammenzutragen und allen zur Verfügung zu stellen entspricht dem Urgedanken des Open GDLboards. Wäre toll, wenn wir hier zusammenarbeiten könnten und hieraus ein allgemein gültiges Objekt entstünde.
bim author since 1994 | bim manager since 2018 | author of selfGDL.de | openGDL | skewed archicad user hall of fame | author of bim-all-doors.gsm