So einfach scheint es dann doch nicht zu sein. Folgendes Skript:
</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">Code:</font><hr /><pre style="font-size:x-small; font-family: monospace;">! Parameter definieren oder nächste Zeile ohne "!"
!
! a=4 : b=2 : zzyzx=1
! Punkte ermitteln, merken, Fangpunkte
for i=1 to n
alpha=i*360/n
x=a*cos(alpha) : y=b*sin(alpha)
hotspot2 x,y
put x,y
next i
! Näherungsweise Ausgabe mit Kreisbögen, bestimmt durch die Tangenten in den Teilungspunkten
msk=1 !Polygonzug Statuswert. Für Prisma z.B: 15+64
put use(2)
! Steigung 1. Punkt
x2=get(1) : y2=get(1)
beta=asn(y2/B)
if cos(beta) and sin(beta) then m2=sgn(x2)*(B/sin(beta))/(A/cos(beta)) else m2=0
put x2,y2,msk !Startpunkt
put m2,1,800 !Starttangente
for i=1 to n
! Neuen Punkt aus Stack, letzter wird Ausgangspunkt
x1=x2 : y1=y2 : m1=m2
x2=get(1) : y2=get(1)
x=0 : y=0
! Schnittpunkt der Lote auf die Tangenten in den Punkten 1 und 2
beta=asn(y2/B)
if cos(beta) and sin(beta) then m2=sgn(x2)*(B/sin(beta))/(A/cos(beta)) else m2=0
if m1-m2 then mue=(x2-x1+m2*(y1-y2)) / (m1-m2) else mue=0
x=x1+m1*mue
y=y1+mue
! Lot ausgeben
line2 x2,y2, x2+m2,y2+1 : hotspot2 x2+m2,y2+1
! Tangentialkreis komplett ausgeben
if i=999 then circle2 x,y,sqr((x2-x)^2+(y2-y)^2)
! Mittelpunkt als Kurvenpunkt
put x,y,900+msk
hotspot2 x,y : text2 x,y,i
! 2.Punkt als Kurvenpunkt
put x2,y2,3000+msk
next i
! Ausgabe
poly2_ 2*(n+1), 1 + 4, get(2*(n+1)*3)
! Gestauchte Ellipse als Referenz
if StiftE then
pen StiftE
mul2 1,B/A
circle2 0,0,A
del 1
endifKann man auch hier runterladen:
bogenellipse2.zip Ergibt leider eine deutlich schlechter Annäherung. Ich bin mir im Moment nicht sicher, ob es ein Rundungsproblem/Präzisionsungenauigkeit von AC oder ein Denkfehler im System ist. Meine Vermutung im Moment ist, daß die Tangenten falsch berechnet sind. Denn wenn ich die Lotpunkte verlängere, bekomme ich deren Schnittpunkt korrekt, wie berechnet. Das kann man mit Linien und 'Linien verbinden' bei dem Objekt überprüfen. Doch trifft ein Kreis mit diesem Mittelpunkt und dem Radius zu einem Ellipsenrandpunkt den banchbarten leider nicht genau. Dies ergibt eine Abweichung, die sich offensichtlich kumuliert.
😉