Einzelnen Beitrag anzeigen

Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#1

[FMX] ungerade Linienbreiten?

  Alt 14. Nov 2013, 20:32
Ich dreh´ am Rad...

Eigentlich will ich berechnete Rects auf dem Canvas darstellen und die Berechnungen visuell prüfen.
Das passte aber alles irgendwie nicht, obwohl die Berechnungen eigentlich korrekt sein mussten.

Also habe ich heute Scrennshots vergrößert und genauer angesehen.

Ergebnis: Ungerade Linienbreiten (ich wollte 1 Pixel) werden verwaschen gezeichnet (mind. 2 Pixel).
Gerade Linienbreiten sind korrekt dargestellt.

Gibt es eine Lösung für das Problem?
Gibt es das Problem noch in XE5?


Die Screenshots müssen leider vergrößert werden, um das genau zu erkennen.


Delphi-Quellcode:
var
  I: Integer;
  p1: TPointF;
  p2: TPointF;
  W: Single;
begin
  W := 4; // 1 bis 4
  Canvas.BeginScene;
  Canvas.Clear(claWhitesmoke);
  Canvas.Stroke.Kind := TBrushKind.bkSolid;
  Canvas.Stroke.Color := claBlack;
  Canvas.StrokeThickness := W;
  for I := 0 to 50 do
  begin
    p1.Create(I * (W + 1) + 10, I * W + 10); // 1 Pixel Abstand zwischen den Linien
    p2.Create(I * (W + 1) + 10, I * W + 10 + 100);
    Canvas.DrawLine(p1, p2, 1);
  end;

  // ...

  Canvas.EndScene;
end;
Miniaturansicht angehängter Grafiken
fmxline.jpg  
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat