簡體   English   中英

如何繪制粗線的輪廓?

[英]How to draw the outline of a thick line?

我想畫一條粗線的輪廓,這是用幾何筆畫的。 該線可以是多邊形或曲線,但為簡單起見,我使用的是直線。

在此處輸入圖片說明

給定兩個POINT變量 A 和 B,以下代碼繪制一條 16 像素寬的黑色線,A 和 B 之間有圓形端點:

LOGBRUSH lb = {BS_SOLID, clBlack, 0};

HPEN Pen = ExtCreatePen(PS_GEOMETRIC | PS_SOLID | PS_ENDCAP_ROUND, 16, &lb, 0, NULL);

HPEN OldPen = SelectObject(DC, Pen);

MoveToEx(DC, A.x, A.y, NULL);
LineTo  (DC, B.x, B.y);

SelectObject(DC, OldPen);

想法是將上述代碼放在BeginPath(DC)EndPath(DC) ,並使用StrokePath(DC)繪制粗線的輪廓,使用 1 像素的筆。 但是,它不是繪制輪廓(圖像中的綠線),而是在 A 和 B 之間繪制一條 1 像素的線(圖像中的紅線)。

有沒有什么辦法解決這一問題?

定義路徑后使用WidenPath

WidenPath函數將當前路徑重新定義為使用當前選擇到給定設備上下文中的筆對路徑進行描邊時將要繪制的區域。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM