问题标签 [pathgeometry]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1256 浏览

c# - 从点列表构建 PathGeometry 而不创建大量其他类

我正在尝试从自定义点列表构建一个简单的多边形 PathGeometry。我在msdn 网站上找到了以下代码,它似乎可以正常工作,只需对循环和添加 LineSegments 进行简单修改,但执行看似相对简单的任务似乎是一大堆不雅的混乱。有没有更好的办法?

0 投票
1 回答
756 浏览

c# - c# wpf旋转饼图动画(使用PathGeometry绘制)

无论如何,我是否有一个 PathGeometry 的旋转动画,它由从角度 A 到角度 B 的弧和线段(饼图)组成?

PathGeometry 是使用 c# 而不是 xaml 绘制的,因此在 c# 而不是 xaml 中的答案将不胜感激,并且动画需要在加载时播放。

0 投票
1 回答
829 浏览

wpf - 更改已启动 DoubleAnimationUsingPath 的路径

是否可以更改动画已经在进行中的路径,例如PathGeometry属性?DoubleAnimationUsingPath如果是这样,怎么做?

我的一些代码:

XAML:

代码隐藏:

这应该在两个矩形的中心之间移动一个 10x10 的圆。如果动画尚未完成并LayoutUpdated触发,我想更改动画,以便在调整窗口大小时动画实际上在矩形的中心结束。

0 投票
1 回答
1020 浏览

c# - 使用平线连接获得加宽路径几何

有一个很好的讨论关于在这个线程上获得一个加宽的路径几何:

围绕折线创建一个多边形,如缓冲区

就我而言,我希望得到的外线不是“圆的”,而是完全平坦的。那可能吗?

我试图更改线连接属性,但结果视觉没有变化。

这是重现问题的代码:

有什么想法吗?

伊戈尔。

0 投票
0 回答
88 浏览

wpf - PathGeometry 周围的 HitTest 区域

PathGeometry我直接通过wpf 在画布上绘制曲线DrawingContext

表明HitTestResultBehavior曲线的边界框是包围曲线的整个矩形,即TL、TR、BL、BR。

我正在考虑将曲线切割成更小的部分,分别绘制它们,以便曲线周围的 HitTest 区域更适合曲线本身的形式。

您是否知道这个问题的一般方法?

0 投票
0 回答
187 浏览

c# - 没有多边形逼近的 GetWidenedPathGeometry

目前在我的项目中,我使用 Geometry.GetWidenedPathGeometry 和 Geometry.GetOutlinedPathGeometry 等 WPF 方法来获取某些 PathGeometry 的轮廓。

但是,由于 WPF 中使用的多边形近似方法,这些生成的几何图形通常由 PolyLineSegment 形成。

这意味着如果我的原始 PathGeometry 包含 ArcSegment,则生成的轮廓将是一系列多边形点(具有可调整的容差)而不是 ArcSegment。

我正在寻找替代方法来产生与上述方法相同的结果,但保留使用的原始几何类型。

谢谢,

伊戈尔。

0 投票
0 回答
342 浏览

c# - WPF PathGeometry 在 DoubleAnimationUsingPath 中被替换

所以我是 WPF 的新手,不知道为什么这不起作用。我想在椭圆上做一个 DoublePathAnimation。所以我使用了一个 PathObject 来简单地找出我需要哪些 PathGeometry 图形。

但是现在当我像这样在我的 PathAnimation 中使用这些数字时:

动画有效,但只有 x 坐标是正确的。y 坐标完全移位。

0 投票
2 回答
63 浏览

geometry - 如何在平面上的 4 个随机放置的点之间连接一条线,以使该线不与自身相交

您会在平原上获得 4 个点的坐标。您需要用一条线将它们全部连接起来。线不得自行交叉。

你的策略是什么?

看图片例子

我的第一个直觉是将点组织为“左上”、“右上”、“左下”和“右下”并继续连接它们,使左上到左下,左下到下右,右下到右上,右上连接回左上。

这在大多数情况下都有效,但并非全部。有更好的策略吗?

谢谢你们。

0 投票
1 回答
528 浏览

wpf - PathGeometry FillContains 未按预期工作

我有一个简单的矩形PathGeometry,想测试点是否在PathGeometry. 显而易见的方法是打电话FillContains,但它没有按预期工作。还有一个重载函数,它有一个tolerance参数,虽然通过调整tolerance到高值FillContains可能会返回true,但由于给定的公差,FillContains对其他几何图形的调用也可能会返回true

所以我写了这个扩展方法来FillContains对这个特定的矩形有一个正确的PathGemoetry

样本的结果:

由于我有很多这样的PathGemoetry对象,那么有没有更好的实现我的更快命中测试或者我在使用时遗漏了什么FillContains导致意外结果?

编辑

刚刚注意到我PathGeometry应用了一个变换,导致点不适合里面。

我通过使用它绕过Transform命中测试来修复它:

0 投票
1 回答
384 浏览

c# - Geometry.Combine 在相交的几何对象上给出奇怪的结果

我有这两个几何形状:

看起来像这样

地理1

看起来像这样: 地理2

当我在一个 GIS 系统中查看这些对象时geo2完全包含在geo1右上角:

两种几何形状在一起

当我得到两者的交集时

我明白了

这看起来很奇怪:

在此处输入图像描述

细节上有令人恼火的差异。例如,在右端,红色标记的intersection几何图形根本不是我所期望的。

右上角有差异

我尝试Combine了不同的公差值,但对结果没有影响。

这里出了什么问题?

* 更新 * 我按照@Sinatr 的假设关闭了几何图形,并通过省略左侧部分简化了第一个几何图形。两者都不影响结果。