zoukankan      html  css  js  c++  java
  • Direct2D (15) : 剪辑


    绘制在 RenderTarget.PushAxisAlignedClip() 与 RenderTarget.PopAxisAlignedClip() 之间的内容将被指定的矩形剪辑。

    uses Direct2D, D2D1;
    
    procedure TForm1.FormPaint(Sender: TObject);
    var
      cvs: TDirect2DCanvas;
      R,RClip: TRect;
    begin
      cvs := TDirect2DCanvas.Create(Canvas, ClientRect);
    
      R := ClientRect;
      InflateRect(R, -ClientWidth div 6, -ClientHeight div 6);
    
      {设置剪辑区域}
      RClip := R;
      InflateRect(RClip, -ClientWidth div 6, 0);
    
      cvs.BeginDraw;
      cvs.Pen.Color := clGreen;
      cvs.Brush.Color := clGreen;
    
      cvs.Ellipse(R); //第一个椭圆
    
      cvs.RenderTarget.PushAxisAlignedClip(RClip, D2D1_ANTIALIAS_MODE_PER_PRIMITIVE); //参数2是抗锯齿的模式
      cvs.Brush.Color := clWhite;
      cvs.Ellipse(R); //第二个椭圆
      cvs.RenderTarget.PopAxisAlignedClip;
    
      cvs.EndDraw;
      cvs.Free;
    end;
    
    procedure TForm1.FormResize(Sender: TObject);
    begin
      Repaint;
    end;
    


    效果图:



  • 相关阅读:
    python
    python
    python
    python
    python
    python
    python
    python
    [ThinkPHP] 从一个表中获得栏目对应的ID,从另一个表获得属于这些栏目的文章
    [thinkPHP] buildSql可以查看tp CURD操作对应的SQL
  • 原文地址:https://www.cnblogs.com/del/p/2004228.html
Copyright © 2011-2022 走看看