AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Benutzung von Polygon() (Windows GDI)
Thema durchsuchen
Ansicht
Themen-Optionen

Benutzung von Polygon() (Windows GDI)

Ein Thema von Assarbad · begonnen am 20. Jan 2005 · letzter Beitrag vom 20. Jan 2005
Antwort Antwort
Assarbad
(Gast)

n/a Beiträge
 
#1

Benutzung von Polygon() (Windows GDI)

  Alt 20. Jan 2005, 00:53
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?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Benutzung von Polygon() (Windows GDI)

  Alt 20. Jan 2005, 00:57
Wie sieht denn dein bisheriger Quellcode aus? Nur mal so zum Testen und Rumprobieren.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Assarbad
(Gast)

n/a Beiträge
 
#3

Re: Benutzung von Polygon() (Windows GDI)

  Alt 20. Jan 2005, 01:04
Zitat von Luckie:
Wie sieht denn dein bisheriger Quellcode aus? Nur mal so zum Testen und Rumprobieren.
Mein aktueller Quellcode ist in C++ (mit MFC), daher wohl nicht sonderlich sinnvoll. Da aber ein exaktes Mapping auf die GDI-Funcs stattfindet, kann man von den Win32-APIs auf den MFC-Code schließen.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Benutzung von Polygon() (Windows GDI)

  Alt 20. Jan 2005, 01:13
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.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Assarbad
(Gast)

n/a Beiträge
 
#5

Re: Benutzung von Polygon() (Windows GDI)

  Alt 20. Jan 2005, 02:00
Hoppala ... die sin() und cos() Funktionen nehmen keine Grad sondern Rad, das ist zumindest eines meiner Probleme. Ich schaue mir das nochmal an.
  Mit Zitat antworten Zitat
Assarbad
(Gast)

n/a Beiträge
 
#6

Re: Benutzung von Polygon() (Windows GDI)

  Alt 20. Jan 2005, 02:19
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);
}
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Benutzung von Polygon() (Windows GDI)

  Alt 20. Jan 2005, 02:29
Zitat von Assarbad:
Hoppala ... die sin() und cos() Funktionen nehmen keine Grad sondern Rad,
Hehe. Sollte aber auch in der Hilfe stehen. Hat das auch dein anderes Problem gelöst? Und mal so aus Neugier: Was wird das, wenn es fertig ist?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Assarbad
(Gast)

n/a Beiträge
 
#8

Re: Benutzung von Polygon() (Windows GDI)

  Alt 20. Jan 2005, 10:50
Zitat von Luckie:
Hat das auch dein anderes Problem gelöst?
Jupp.

Zitat von Luckie:
Und mal so aus Neugier: Was wird das, wenn es fertig ist?
Das zeige ich dir, wenn es fertig ist.
  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 23:58 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