FileModeWinding и DrawPath вызывают странные всплески

Я использую gdiplus для "обводки" текста. При определенных обстоятельствах мы видим «всплеск» вверху или внизу изображения, и я не совсем понимаю, почему. Мы можем минимизировать это, отрегулировав ширину штриха и размер шрифта, но это не лучшее решение. Я' Я надеюсь, что кто-нибудь сможет объяснить мне проблему.

Spikey Bug

И образец кода, генерирующий этот 4, его контур и всплеск (непреднамеренный)

GraphicsPath path(FillModeWinding);   

      path.AddString(text,wcslen(text),&fontFamily,StateInfo.TheFont.TheWeight,(REAL)minSize,PointF((REAL)ptStart.x, (REAL)ptStart.y),&sf);
      // Draw the outline first
      if (StateInfo.StrokeWidth > 0) {
        Gdiplus::Color strokecolor(GetRValue(StateInfo.StrokeColor), GetGValue(StateInfo.StrokeColor), GetBValue(StateInfo.StrokeColor));
        Pen pen(strokecolor,(REAL)StateInfo.StrokeWidth);      
        graphics.SetSmoothingMode(Gdiplus::SmoothingModeAntiAlias);
        graphics.SetPixelOffsetMode(Gdiplus::PixelOffsetModeHighQuality);
        graphics.DrawPath(&pen, &path);
        }
      // Draw the text by filling the path        
      graphics.FillPath(&solidBrush, &path);
6
задан Daniel DiPaolo 24 June 2011 в 14:35
поделиться