zoukankan      html  css  js  c++  java
  • GdiPlus[30]: IGPPen: 线帽


    StartCap 和 EndCap 属性分别用来读写两段的线帽, 测试图:



    StartCap 和 EndCap 测试代码:

    uses GdiPlus;
    
    procedure TForm1.FormPaint(Sender: TObject);
    const
      CapArr: array[0..8] of Byte = (0, 1, 2, 3, $10, $11, $12, $13, $14);
    var
      Graphics: IGPGraphics;
      Pen: IGPPen;
      Pt1,Pt2: TGPPoint;
      i: Integer;
    begin
      Pt1.Initialize(20, 20);
      Pt2.Initialize(200, 20);
      Graphics := TGPGraphics.Create(Handle);
      Pen := TGPPen.Create($FF2E8B57, 11);
    
      for i := 0 to Length(CapArr) - 1 do
      begin
        Pen.StartCap := TGPLineCap(CapArr[i]);
        Pen.EndCap := Pen.StartCap;
        Graphics.DrawLine(Pen, Pt1, Pt2);
        Graphics.TranslateTransform(0, Pt1.Y * 1.5);
      end;
    end;
    

    DashCap 属性用来读写虚线线帽, 这在实线中没有效果; 测试图:



    DashCap 测试代码:

    uses GdiPlus;
    
    procedure TForm1.FormPaint(Sender: TObject);
    var
      Graphics: IGPGraphics;
      Pen: IGPPen;
      Pt1,Pt2: TGPPoint;
    begin
      Pt1.Initialize(20, 20);
      Pt2.Initialize(240, 20);
      Graphics := TGPGraphics.Create(Handle);
      Pen := TGPPen.Create($FF4169E1, 11);
      Pen.DashStyle := DashStyleDashDot;
    
      Pen.DashCap := DashCapFlat;
      Graphics.DrawLine(Pen, Pt1, Pt2);
      Graphics.TranslateTransform(0, Pt1.Y * 1.5);
    
      Pen.DashCap := DashCapRound;
      Graphics.DrawLine(Pen, Pt1, Pt2);
      Graphics.TranslateTransform(0, Pt1.Y * 1.5);
    
      Pen.DashCap := DashCapTriangle;
      Graphics.DrawLine(Pen, Pt1, Pt2);
    end;
    

    可通过 SetLineCap 方法一起设定 StartCap、EndCap、DashCap, 测试图:



    SetLineCap 测试代码:

    uses GdiPlus;
    
    procedure TForm1.FormPaint(Sender: TObject);
    var
      Graphics: IGPGraphics;
      Pen: IGPPen;
    begin
      Graphics := TGPGraphics.Create(Handle);
      Pen := TGPPen.Create($FFC71585, 11);
      Pen.DashStyle := DashStyleDashDot;
    
      Pen.SetLineCap(LineCapRoundAnchor, LineCapArrowAnchor, DashCapTriangle);
    
      Graphics.DrawLine(Pen, 20, 30, 300, 30);
    end;
    

  • 相关阅读:
    Codeforces Round #629 (Div. 3) (A ~ F)
    st表
    Educational Codeforces Round 81 (Rated for Div. 2)
    hihocoder#1996 : 01匹配
    P2056 [ZJOI2007]捉迷藏
    P2495 [SDOI2011]消耗战
    GUETOJ1335
    优先队列重载比较运算
    CCF认证201909-4 推荐系统
    P3178 [HAOI2015]树上操作
  • 原文地址:https://www.cnblogs.com/del/p/1625455.html
Copyright © 2011-2022 走看看