Hallo
Danke euch schonmal
Habe nun mal folgendes gefunden und angepasst.
Funktioniert halt nur für linken Öffnungswinkel zwischen -180 und 0° und rechten Öffnungswinkel zwischen 0 und 180°.
Es ist allerdings erforderlich, dass auch beide Öffnungswinkel positiv/negativ sein können (simuliert dann halt eine gedrehte Darstellung).
winkelLinks = 90 - winkelLinks ;
winkelRechts = 90 - winkelRechts :
HilfsVar:
HlpCosLinks = (SinusLinks <=0) ?1 : abs(cos(WinkelLinks);
HlpCosRechts = (SinusRechts <=0) ?1 : abs(cos(WinkelRechts);
HlpMinSinus = min(SinusLinks, SinusRechts);
Wenn HlpMinSinus > 0, dann auf 0 setzen.
X = BreiteRechteck / (HlpCosLinks + HlpCosRechts );
Y = HöheRechteck / (1-HlpMinSinus);
Wenn Y < X:
Radius = Y;
Startpunkt.x = (BreiteRechteck + Radius * (HlpCosLinks - HlpCosRechts)) / 2);
Startpunkt.y = Radius
Wenn Y >= X:
Radius = X
Startpunkt.x = Radius * HlpCosLinks
Startpunkt.y = HöheRechteck + Radius * (1+HlpMinSinus ))/2;
Damit kann ich die 3 oberen Grafiken einwandfrei im Rechteck platzieren.
Nur eben nur dann wenn die Winkel zwischen -180 und 0 bzw 0 und +180 liegen, nicht jedoch, wenn beide Winkel negativ/positiv sind (also beispielsweise ein Segment mit WInkeln +30 und +80).
Hab hier schon versucht, die weiteren Fallunterscheidungen einzuführen, damit ich diese Fälle abdecken kann, aber noch nicht ganz draufkommen.
Vielleicht sieht ja jemand hier von euch auf den 1.Blick, was anzupassen ist, um es alle Winkel gültig zu machen.
Danke