gpt4 book ai didi

.net - 获取 WPF 路径中所有点的像素位置

转载 作者:行者123 更新时间:2023-12-05 00:58:54 24 4
gpt4 key购买 nike

假设您在 Canvas 上绘制了一条 Bezier 样条,如下所示:

<Canvas x:Name="SomeCanvas" Width="50" Height="50" Background="Black">
<Path x:Name="SomePath" Data="M0,0C10,10 10,50 50,10" Stroke="Yellow" StrokeThickness="1"/>
</Canvas>

您将如何确定 Canvas 中的哪些像素与路径的中心相交(意味着不考虑笔画粗细)?

最佳答案

如果您的意思是要找到中心点 沿路径。我认为我们必须对路径的数据做一些事情,它实际上是一个 Geometry . Geometry有一个方法叫 GetFlattenedGeometryPath返回 PathGeometry它有一个名为 GetPointAtFractionLength 的方法.所以你可以尝试这样的事情:

 Point centerPoint;
Point tg;
SomePath.Data.GetFlattenedGeometryPath()
.GetPointAtFractionLength(0.5, out centerPoint, out tg);

如果你的意思是你想找到所有的点,我认为这个问题有点抽象。从技术上讲,有无数个点。因此,您可以使用以下代码找到沿路径均匀分布的 1000 个点:
Point p;
Point tg;
var points = new List<Point>();
for(var i = 0; i < 1000; i++){
SomePath.Data.GetFlattenedGeometryPath()
.GetPointAtFractionLength(i / 1000f, out p, out tg);
points.Add(p);
}

关于.net - 获取 WPF 路径中所有点的像素位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25408250/

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