首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获取WPF路径中所有点的像素位置

获取WPF路径中所有点的像素位置
EN

Stack Overflow用户
提问于 2014-08-20 15:06:59
回答 1查看 952关注 0票数 4

假设您在画布上画了一个Bezier样条,如下所示:

代码语言:javascript
运行
复制
<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>

如何确定画布中哪些像素被路径的中心相交(这意味着忽略了笔画厚度)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-20 16:44:20

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

代码语言:javascript
运行
复制
 Point centerPoint;
 Point tg;
 SomePath.Data.GetFlattenedGeometryPath()
              .GetPointAtFractionLength(0.5, out centerPoint, out tg);

如果你的意思是你想找出所有的观点,我认为它在这个问题上有点抽象。从技术上讲,有无穷多的点。因此,您可以使用以下代码查找路径上均匀分布的1000个点:

代码语言:javascript
运行
复制
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);
}
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25408250

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档