通过锐化 API 绘制和填充具有 4 个顶点(2D 位置)的多边形

本文关键字:顶点 2D 位置 多边形 API 锐化 绘制 填充 | 更新日期: 2023-09-27 18:32:59

我有 4 个浮点(2D 位置),我想在 2D 中绘制和填充多边形(在这 4 个位置有顶点)。

我如何使用锐化x做到这一点?

通过锐化 API 绘制和填充具有 4 个顶点(2D 位置)的多边形

我找到了如何绘制和填充多边形的方法。我使用了 RenderTarget 对象的 drawGeometry 和 fillGeometry 方法。

我不会提到如何初始化 directx

    PathGeometry geo1;
    GeometrySink sink1;
        FactoryD2D factory = new FactoryD2D();
        var dpi = factory.DesktopDpi;
        RenderTarget renderTarget;
        renderTarget = new RenderTarget(factory, backBuffer, new RenderTargetProperties()
        {
            DpiX = dpi.Width,
            DpiY = dpi.Height,
            MinLevel = SharpDX.Direct2D1.FeatureLevel.Level_DEFAULT,
            PixelFormat = new SharpDX.Direct2D1.PixelFormat(Format.Unknown, AlphaMode.Ignore),
            Type = RenderTargetType.Hardware,
            Usage = RenderTargetUsage.None
        });
        // and after all initialization
            pta[0] = new SharpDX.Vector2(pts[4].X, pts[4].Y);
            pta[1] = new SharpDX.Vector2(pts[5].X, pts[5].Y);
            pta[2] = new SharpDX.Vector2(pts[6].X, pts[6].Y);
            pta[3] = new SharpDX.Vector2(pts[7].X, pts[7].Y);
            geo1 = new PathGeometry(factory);
            sink1 = geo1.Open();
            sink1.BeginFigure(pta[0], new FigureBegin());
            sink1.AddLines(new SharpDX.Vector2[] { pta[1], pta[2], pta[3] });
            sink1.EndFigure(new FigureEnd());
            sink1.Close();
        Color penColor = Color.Black;
        SolidColorBrush penBrush = new SolidColorBrush(g, new SharpDX.Color(penColor.R, penColor.G, penColor.B));
        Color color = AddColor(pt, zmin, zmax);
        SolidColorBrush aBrush = new SolidColorBrush(g, new SharpDX.Color(color.R, color.G, color.B));
            renderTarget.DrawGeometry(geo1, penBrush);
            renderTarget.FillGeometry(geo1, aBrush);
            geo1.Dispose();
            sink1.Dispose();

您可以添加其他地理和接收器,以便向其添加更多形状

希望这对像我一样迷失并试图寻找答案的人有所帮助