Direct2D 中ID2D1StrokeStyle 的使用

 

用ID2D1StrokeStyle可以构建出我们想要的风格:

virtual HRESULT CreateStrokeStyle(
  [in]            const D2D1_STROKE_STYLE_PROPERTIES *strokeStyleProperties,
  [in, optional]  const FLOAT *dashes,
  UINT dashesCount,
  [out]           ID2D1StrokeStyle **strokeStyle
) = 0;

D2D1_STROKE_STYLE_PROPERTIES结构体中描述了中分风格;


struct D2D1_STROKE_STYLE_PROPERTIES {
  D2D1_CAP_STYLE  startCap;
  D2D1_CAP_STYLE  endCap;
  D2D1_CAP_STYLE  dashCap;
  D2D1_LINE_JOIN  lineJoin;
  FLOAT           miterLimit;
  D2D1_DASH_STYLE dashStyle;
  FLOAT           dashOffset;
};

D2D1_CAP_STYLE :

typedef enum  {
  D2D1_CAP_STYLE_FLAT       = 0,
  D2D1_CAP_STYLE_SQUARE     = 1,
  D2D1_CAP_STYLE_ROUND      = 2,
  D2D1_CAP_STYLE_TRIANGLE   = 3
} D2D1_CAP_STYLE;

 

代码:

float dashes[] = {2.0f, 2.0f, 0.0f, 2.0f, 2.0f, 2.0f};
	DX::ThrowIfFailed(
		d2dFactory->CreateStrokeStyle(
		 D2D1::StrokeStyleProperties(
            D2D1_CAP_STYLE_TRIANGLE,
            D2D1_CAP_STYLE_ROUND,
            D2D1_CAP_STYLE_ROUND,
            D2D1_LINE_JOIN_MITER,
            1.0f,
            D2D1_DASH_STYLE_SOLID,
            10.0f),
        NULL,
        0,
        &pStrokeStyle
		)
        );

 

 

效果:

 

只要参考上面的步骤,以及msdn 上面的描述,即可构建出想要的中分风格

Direct2D 交流群254876370

posted @ 2012-10-09 17:43  sinian  阅读(1252)  评论(0编辑  收藏  举报