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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值