![]() |
Windows GDI ArcTo: Tutorial
Ja, genau: ich suche gleich ein ganzes Tutorial zu o.g. Funktion aus der GDI :mrgreen:
Naja, eine ausführliche Erläuterung würde es auch tun. Ziel: Ich möchte eine Kurve zeichnen (und kein AngleArc benutzen). Ich breche mir hier gerade die Finger, da ich die Parameter nicht verstehe. Zitat:
Bei nXRadial1, nYRadial1, nXRadial2 und nYRadial2 fehlt es mir irgendwie an geometrischem Vorstellungsvermögen, oder an was auch immer; ich blicke es jedenfalls nicht. Kennt jemand eine Seite, die das Ganze veranschaulicht, möglichst grafisch? Danke. |
Re: Windows GDI ArcTo: Tutorial
Malen will ich jetzt nix, aber so schwer ist das mit der Funktion gar nicht, WIMRE: DIE 4 Rect-Parameter beschreiben ein Rechteck, in das eine Ellipse gemalt wird. Die 4 Radial-Parameter geben 2 Punkte an, die zusammen mit dem Mittelpunkt des Rechtecks als Scheitel einen Winkel aufspannen, der aus der Ellipse herausgeschnitten wird. Das ist dann das, was auf dem Bildschirm auftaucht.
HTH, Uli. |
Re: Windows GDI ArcTo: Tutorial
Zitat:
Mag an meiner Erkältung liegen; glaube aber eher, dass es an meinem mangelnden mathematischen Verständnis liegt... Da dauert halt alles immer ein bissel länger als bei anderen :mrgreen: Dennoch vielen Dank für Deine Antwort; wenigstens einer, der versucht, mir zu helfen ;) Edit: okay, nun hab' ich es :-D Ist exakt das, was uligerhardt beschrieben hat; ich brauch es halt ![]() |
Re: Windows GDI ArcTo: Tutorial
Och, jetzt hab ich mühselig ein Bildchen gemalt... :D
|
Re: Windows GDI ArcTo: Tutorial
Das ist aber lieb - stell es ein, dann lösche ich den verlinkten Beitrag :zwinker:
|
Re: Windows GDI ArcTo: Tutorial
Das lassen wir lieber. Wirklich hübsch ist es nicht geworden. :lol:
|
Re: Windows GDI ArcTo: Tutorial
In der Hilfe zum VCL-Pendant TCanvas.Arc steht es auch recht gut beschrieben.
Zitat:
|
Re: Windows GDI ArcTo: Tutorial
Danke Detlef - aber wie gesagt: ich brauche es visuell. Erotische Geschichten tangieren mich auch nicht besonders :mrgreen:
|
AW: Re: Windows GDI ArcTo: Tutorial
Zitat:
Sind das die Schnittpunkte mit der Ellipse oder mit dem die Ellipse umspannenden Rechteck. Wenn das die Schnittpunkte mit dem Ellipsenbogen sind, wo finde ich dann passende Ellipsengleichungen? Ich habe seit Turbopascal nichts mehr mit solchen Grafikfunktionen gemacht, weiß aber, das Turbo Pascal statt der Punkte X3,Y3 und X4,Y4 Anfangs und Endwinkel verlangt. Ich muss also Umdenken und statt Anfangs und Endwinkel ausdiesen beiden Winkeln die hier geforderten Punkte berechnen. |
AW: Windows GDI ArcTo: Tutorial
Die Punkte X3/Y3 und X4/Y4 geben jeweils einen Strahl (bzw. eher Vektor) vom Ellipsenmittelpunkt aus gesehen an. (Steht da ja schon.) Daher sind sie fast schon unmittelbar von/in einen Winkel umrechenbar.
|
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 05:00 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