Die dunklen grauen Linien sollen schwarz und 1 Pixel breit sein:
pRT->DrawLine(Point2F(100, 120), Point2F(300, 120), blackbrush, 1);
Die hellgrauen Linien sollen schwarz sein und 0,5 Pixel breit:
pRT->DrawLine(Point2F(120, 130), Point2F(280, 130), blackbrush, 0.5);
Stattdessen sind sie beide 2 Pixel breit. Wenn ich nach 2 Pixel Breite frage, ist die Linie schwarz, aber natürlich 2 Pixel breit.
Das Renderziel hat dieselbe Größe wie der Clientbereich des Fensters. Ich möchte Pixelgenauigkeit wie in GDI, eine Koordinate = ein Pixel und reine Farben ...
Danke.
Danke für die Erklärung, macht Sinn. Habe ich das in den MSDN-Dokumenten auf Direct2D irgendwo vermisst oder ist es nicht da und ich sollte es wissen? "Zeichnen von (100.5, 120.5) - (299.5, 120.5) mit einer Strichstärke von 1.0 wird Sie bekommen, was Sie suchen" Wenn ich Sie richtig verstehe, wäre das (100.5, 120.5) - (300.5, 120.5) . Andernfalls wird das letzte Pixel der Zeile weggelassen. Übrigens, "SemMike's Vorschlag": derselbe Typ, ich beantwortete meine eigene Frage ... – SemMike
Ob Sie 299.5 oder 300.5 verwenden, hängt davon ab, ob Sie eine 200px breite Linie oder eine 201px Linie möchten. Und das ist wahrscheinlich nicht in der Dokumentation, denn es ist ziemlich Standard für moderne 2D-Grafik-APIs, aber es ist auch ein bisschen nicht offensichtlich und fortgeschritten, und oft vergessen Menschen, die an fortgeschrittenen Sachen arbeiten, was sie vorher nicht wussten das ist fortgeschritten. Ich finde es hilft, es wie ein Blatt Rasterpapier zu denken. Wo die horizontalen und vertikalen Linien sich schneiden, sind die ganzzahligen Pixelkoordinaten und die Quadrate zwischen ihnen sind die "physikalischen" Pixelelemente. –