深灰色線應該是黑色和1個像素寬:
pRT->DrawLine(Point2F(100, 120), Point2F(300, 120), blackbrush, 1);
淺灰色線被認爲是黑和0.5個像素寬:
pRT->DrawLine(Point2F(120, 130), Point2F(280, 130), blackbrush, 0.5);
相反,它們都是2個像素寬。如果我要求2個像素寬,線是黑色的,但自然2個像素寬。
渲染目標與窗口的客戶區域大小相同。我希望像GDI中的像素精度,一個座標=一個像素和純色......
謝謝。
感謝您的解釋,是有道理的。我是否在Direct2D的MSDN文檔中錯過了這個文檔,或者它不在那裏,我應該知道? 「從(100.5,120.5) - (299.5,120.5)中抽出,筆畫寬度爲1.0會讓你找到你想要的東西」如果我正確理解你,那將是(100.5,120.5) - (300.5,120.5) 。否則,該行的最後一個像素被省略。順便說一下,「SemMike的建議」:同一個人,我回答我自己的問題...... – SemMike
您是否使用299.5或300.5取決於您想要200px寬線還是201px線。這可能不在文檔中,因爲它對現代2D圖形API來說是相當標準的東西,但它也有點不明顯和先進,並且通常從事高級工作的人往往會忘記他們之前不知道的東西那先進。 我覺得它有助於將它想象爲一張網格紙。水平線和垂直線相交的地方是整數像素座標,它們之間的平方是「物理」像素單元。 –