AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Verständnisfrage zur Pie() Funktion
Thema durchsuchen
Ansicht
Themen-Optionen

Verständnisfrage zur Pie() Funktion

Ein Thema von DualCoreCpu · begonnen am 9. Nov 2015 · letzter Beitrag vom 10. Nov 2015
Antwort Antwort
DualCoreCpu
(Gast)

n/a Beiträge
 
#1

Verständnisfrage zur Pie() Funktion

  Alt 9. Nov 2015, 16:15
Hallo,

Leider muss ich noch mal nerven. In diesem Thread hier:
http://www.delphipraxis.net/187210-e...ml#post1320849

hatte ich versucht, eine eigene Pie Funktion zu schreiben, aber inzwischen aufgegeben. Nicht nur, weil ich den Fahler nicht finde, sondern auch, weil ich im WinAPI Verständnis voran kommen will.

Laut MSDN liegt wie bei der Ellipse der Bogen eines Tortenstückes Pie innerhalb eines mit anzugebenden Rechteckes.

Nun meine Fragen:

In Luckies Demo befindet sich folgende Pie() Funktion:

Pie(WndDC, 300, 110, 500, 200, 310, 110, 200, 260);

Das ergibt folgendes Rechteck als Schablone für den Ellipsenbogen:

Leider kann ich hier in meinem ersten Beitrag keine Dateien mehr anhängen. Deshalb hole ich das in meinem nächten Folgebeitrag nach.

Der Mittelpunkt des Rechteckes und so auch der Ellipse liegt demnach bei:

Xm := ((500 - 300) div2) + 300

Xm := (200 div 2) + 300

Xm := 100 + 300

Xm = 400

Ym := ((260 - 110) div 2) + 110

Ym := (150 div 2) + 110

Ym := 75 + 110

Ym := 185

So weit, so gut.

Aber nach MSDN Doku sind die beiden letzten x,y Kooridinaten die Enddpunkte der Strahlen, faktisch die Schnittpunkte der Strahlen mit der Ellipse, die aber nach Definition innerhalb des Rechteckes liegt.

Aber der Endpunkt des Zweiten Strahles liegt außerhalb des die Ellipse umschließenden Rechteckes:

X = 200 ---> Kleiner als X = 300
Y = 260 ---> untere Kante des Rechteckes, ist nur im Punkt Xm,Ym Schnittpunkt zwischen Ellipse und Rechteck.

Warum wird dann dennoch das Tortenstück gezeichnet. Das MSDN sagt, in der Funktion werden keine Koordinatenanpassungen vorgenommen, heißt für mich, wenn die Koordinaten falsch sind, wird nichts gezeichnet.

Wo liegt hier mein Denkfehler.

Ich beziehe mich hier auf die Windows API Originalfunktion Pie().

[EDIT]
In meiner Vorschau wird das Rechteck korrekt angezeigt. Warum dann nicht im abgesendeten Beitrag?
[/Edit]

Geändert von DualCoreCpu (10. Nov 2015 um 11:04 Uhr)
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.060 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Verständnisfrage zur Pie() Funktion

  Alt 10. Nov 2015, 08:35
Du könntest mehr Resonanz zu deinen Beiträgen erhalten, wenn du ein paar Skizzen (ja, mit Paint oder so) anhängst und/oder Screenshots von Soll- und Ist-Zustand anhängst.
Anhand der textuellen Beschreibung will sich anscheinend keiner reindenken.

Geändert von TiGü (10. Nov 2015 um 10:05 Uhr)
  Mit Zitat antworten Zitat
DualCoreCpu
(Gast)

n/a Beiträge
 
#3

AW: Verständnisfrage zur Pie() Funktion

  Alt 10. Nov 2015, 11:25
Danke für den Hinweis, @TiGü. Den werd ich mal befolgen und hier die Skizze(n) anhängen. Leider kann ich das nicht mehr in meinem ersten Beitrag selber machen. Deshalb hier.skizze.jpg

Die Ellipsenbögen links in den beiden Bildern sind absichtlich so gezeichnet. Meine Frage bezieht sich auf das Tortenstück rechts in der Miniauransicht links mit dem Dateinamen Soll-Zustand. Rchts die Datei mit dem Namen Ist-Zustand.. Da werden nur die beiden Strahlen gezeichnet und davon der untere zu lang.

Onkel Bill hat doch die Pie Funktion auch hingekriegt, links in der Bilddatei Soll Zustand gut zu sehen. Warum kann ich das nicht auch mit einer eigen Funktion? Kopfkratz!
Miniaturansicht angehängter Grafiken
soll-zustand.jpg   ist-zustand.jpg  

Geändert von DualCoreCpu (10. Nov 2015 um 11:30 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz