为什么80%的码农都做不了架构师?>>>
绘制在 RenderTarget.PushAxisAlignedClip() 与 RenderTarget.PopAxisAlignedClip() 之间的内容将被指定的矩形剪辑。
uses Direct2D, D2D1;procedure TForm1.FormPaint(Sender: TObject);
varcvs: TDirect2DCanvas;R,RClip: TRect;
begincvs := 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);
beginRepaint;
end;
效果图:
