Benutzer mit den meisten Antworten
Per API (GDI) LineTo erzeugt unschöne Linien

Frage
-
Hallo,
ich nutze die Picturebox-Klasse von Lebans um innerhalb eines Bildcontrols u.A. Linien zu zeichnen.
Sind die Linien aber schräg, zeigen sich unschöne Treppenstufen. Gibts eine Möglichkeit das zu optimieren?
Gruß Andreas
http://www.AccessBlog.de
Antworten
-
Hallo Andreas,
das liegt daran, dass GDI nur einen sehr einfachen Algorithmus (Bresenham) verwendet, siehe Lines
GDI+ (was auch .NET für Windows Forms/Drawing) verwendet, kennt dort bessere Algorithmen,
die auch Anti-Aliasing kennen, siehe Wikipedia
Wobei das native Einbinden von GDI+ in Access doch ziemlich aufwändig sein dürfte,
da sollte man eher zu C++ (oder .NET greifen).Als Alternative: Wenn die Zahl der Linien überschaubar ist, suchst Du Dir in der Wikipedia
einen Algorithmus der Deinen Ansprüchen genügt.Gruß Elmar
- Als Antwort markiert Robert BreitenhoferModerator Mittwoch, 29. Februar 2012 11:24
-
Hallo Elmar,
[...] Wobei das native Einbinden von GDI+ in Access doch ziemlich aufwändig sein dürfte,
da sollte man eher zu C++ (oder .NET greifen). [...]
Kennst du http://www.access-im-unternehmen.de/index1.php?BeitragID=337&id=300 ?
Gruss - Peter
- Als Antwort markiert Robert BreitenhoferModerator Mittwoch, 29. Februar 2012 11:24
Alle Antworten
-
Hallo,
habe testhalber mal statt einer Linie Einzelpunkte der 2PunktForm der Gerade zeichnen lassen:
m = (p2y - p1y) / (p2x - p1x)
b = p1y - ((p2y - p1y) / (p2x - p1x) * p1x)
For k = p1x To p2x
pb.DrawPixel k, m * k + b, 16711680
Next kHat das selbe resultat, was mich dann zur Ursache gebracht hat - die Auflösung ist einfach zu grob.
http://www.AccessBlog.de
-
Hallo Andreas,
das liegt daran, dass GDI nur einen sehr einfachen Algorithmus (Bresenham) verwendet, siehe Lines
GDI+ (was auch .NET für Windows Forms/Drawing) verwendet, kennt dort bessere Algorithmen,
die auch Anti-Aliasing kennen, siehe Wikipedia
Wobei das native Einbinden von GDI+ in Access doch ziemlich aufwändig sein dürfte,
da sollte man eher zu C++ (oder .NET greifen).Als Alternative: Wenn die Zahl der Linien überschaubar ist, suchst Du Dir in der Wikipedia
einen Algorithmus der Deinen Ansprüchen genügt.Gruß Elmar
- Als Antwort markiert Robert BreitenhoferModerator Mittwoch, 29. Februar 2012 11:24
-
Hallo Elmar,
[...] Wobei das native Einbinden von GDI+ in Access doch ziemlich aufwändig sein dürfte,
da sollte man eher zu C++ (oder .NET greifen). [...]
Kennst du http://www.access-im-unternehmen.de/index1.php?BeitragID=337&id=300 ?
Gruss - Peter
- Als Antwort markiert Robert BreitenhoferModerator Mittwoch, 29. Februar 2012 11:24
-
Hallo Andreas Vogt,
Ich gehe davon aus, dass die Antworten Dir weitergeholfen haben.
Solltest Du noch "Rückfragen" dazu haben, so gib uns bitte Bescheid.Grüße,
Robert
Robert Breitenhofer, MICROSOFT
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.