我想绘制一条粗线的轮廓,该轮廓是用几何笔绘制的。这条线可以是多边形或曲线,但为简单起见,我使用的是直线。
给出两个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像素的线(图像中的红线)。
有什么办法可以解决这个问题?