![]() |
Benutzung von Polygon() (Windows GDI)
Hiho,
ich habe da ein paar Problemchen. Wenn ich Polygon() benutze, bekomme ich statt einem Hexagon (Sechseck) ein Hexagramm (Sechsstern). Außerdem habe ich da irgendwie Problemchen die Koordinaten so exakt zu berechnen, daß sich Anfangs- und Endpunkt wieder treffen (denn die Pixelkoordinaten sind ja nur Integers, keine Floats - was die Berechnung mit Sinus/Kosinus aber erfordern würde). Weiß jemand Rat? |
Re: Benutzung von Polygon() (Windows GDI)
Wie sieht denn dein bisheriger Quellcode aus? Nur mal so zum Testen und Rumprobieren.
|
Re: Benutzung von Polygon() (Windows GDI)
Zitat:
|
Re: Benutzung von Polygon() (Windows GDI)
Na ja, aber irgendwas musst du falschen machen, dass dein Polygonzug wie ein Stern aussieht und nicht wie gewünscht wie ein Hexagon. Und da wäre Quellcode ganz hilfreich, denke ich. Aber Moment mal, für einen Stren braicht es doch eh mehr Punkte, asl für Hexagon. Also irgendwie stimmt was mit deinen Koordinaten nicht bzw., wie du sie errechnest. Gib sie doch mal von Hand an, ohne sie zu berechnen.
|
Re: Benutzung von Polygon() (Windows GDI)
Hoppala ... die sin() und cos() Funktionen nehmen keine Grad sondern Rad, das ist zumindest eines meiner Probleme. Ich schaue mir das nochmal an.
|
Re: Benutzung von Polygon() (Windows GDI)
So, hier der Code (funzt jetzt) wie gewünscht:
Code:
void CCreateGroupsView::DrawAromCycle(CDC& DC, unsigned order, unsigned length)
{ if(!order) return; int oldidx = DC.SaveDC(); CPoint org = DC.GetCurrentPosition(); double angle = (pi * 2) / order, startangle = pi / 2; LPPOINT points = new POINT[order], currpoint; if(currpoint = points) { for(unsigned i = 0; i < order; i++) { currpoint->x = org.x + length * cos(i * angle + startangle); currpoint->y = org.y + length * sin(i * angle + startangle); currpoint++; } DC.Polygon(points, order); delete points; } DC.RestoreDC(oldidx); } |
Re: Benutzung von Polygon() (Windows GDI)
Zitat:
|
Re: Benutzung von Polygon() (Windows GDI)
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:30 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