![]() |
AW: Re: Windows GDI ArcTo: Tutorial
Zitat:
Zitat:
Delphi-Quellcode:
Den Radius kannst du dir theoretisch nach Gusto aussuchen - in der Praxis gibt's natürlich Rundungseffekte. Drum würde ich ihn nicht zu klein wählen, z.B. die Breite oder Höhe des Rechtecks.
function CalcPoint(const AMittelPunkt: TPoint; ARadius, AWinkel: Extended): TPoint;
var Sin, Cos: Extended; begin SinCos(AWinkel, Sin, Cos); Result.X := AMittelPunkt.X + Round(ARadius * Cos); Result.Y := AMittelPunkt.Y + Round(ARadius * Sin); end; |
AW: Windows GDI ArcTo: Tutorial
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe da mal was vorbereitet (siehe Anhang):
- X1, X2, Y1 und Y2 definieren das umgebende Rechteck (blau) - X3 und Y3 sind die rechte obere Ecke - X4 und Y4 sind die linke obere Ecke Die Verbindungslinien zum Ellipsenmittelpunkt sind schwarz, der sich daraus ergebende Arcusbogen rot. |
AW: Windows GDI ArcTo: Tutorial
Hey, Danke soweit allen. Hat echt weitergeholfen. :smile2:
Aber: Momentan beschäftigt mich nun die Frage, wie ich wieder auf die Winkel käme. Die oben genannte Funktion CalcPoint berechnet ja den Punkt X,Y, wie ihn die GDI Funktion sehen will, anstelle des Winkels. Ich habe da aus der Schulzeit noch in Erinnerung, das man den Winkel zwischen 2 eingeschlossenen Seiten berechnen konnte oder sogar auch 2 Winkel vorgeben und die fehlenden Seiten des Dreieckes berechnen konnte. Weiß zufällig jemand noch, wie das war. Meine Formelsammlung ist da zu kurz gehalten. Ein guter Link zum Nachlesen ist auch mehr als willkommen. Muss ja berechenbar sein. Wie also könnte ich jetzt den Winkel erhalten, der in CalcPoint als Sinus/Cosinus einfließt. Ich meine den Wert für alpha, beta und Gamma. Einer der Winkel ist ja schon mal 90 Grad. alpha = 180 - beta - gamma, die anderen Winkelanalog, aber wiewar das noch mal mit Seite/Winkel/Seite oder Winkel/Seite/Winkel??? Das muss doch zu "knacken" sein. |
AW: Windows GDI ArcTo: Tutorial
Zitat:
|
AW: Windows GDI ArcTo: Tutorial
Zitat:
![]() Hab ich allerdings mit "Seite Winkel Seite" gefunden. Trotzdem Danke! :smile2: Jetzt kann ich in beide Richtungen rechnen. |
AW: Windows GDI ArcTo: Tutorial
Zitat:
|
AW: Windows GDI ArcTo: Tutorial
Wenn es um die Umsetzung von Funktionen geht, die Winkel benutzt haben, sind sin() und cos() die Freunde. In Gegenrichtung ist es atan2(). Zumindest sind das die beiden Wege, die am geradesten heraus wären.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz