gpt4 book ai didi

c# - 通过 sharpdx API 绘制和填充具有 4 个顶点(二维位置)的多边形

转载 作者:太空狗 更新时间:2023-10-29 23:07:04 26 4
gpt4 key购买 nike

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

我如何使用 sharpdx 做到这一点?

最佳答案

我找到了如何绘制和填充多边形。我使用了 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();

您可以添加其他 geos 和水槽,以便在其上添加更多形状

希望这对像我一样迷路并拼命寻找答案的人有所帮助

关于c# - 通过 sharpdx API 绘制和填充具有 4 个顶点(二维位置)的多边形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27289470/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com