问题标签 [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.
java - 将自相交的 Path2D 拆分为几个非自相交路径的算法?
我需要摆脱形状中的自相交。形状由点数组构成,因此该形状的所有线段都是线。(只有直线,没有曲线和圆弧)
以前,我尝试从这些点创建 Path2D,从中构造一个 Area,然后使用它的 PathIterator 我创建了几个 Path2D,它们不知何故是先前路径的子路径,因此自干涉消失了。但这不适用于某些路径 - 自相交仍然存在。
那么你能指出我可以找到做类似事情的好算法的地方吗?
编辑:我在任何地方都没有发现任何有用的东西,所以我编写了自己的算法。查看答案。
wpf - 以编程方式将路径拆分为多个路径
我有一个动态生成的路径,其数据由 aPathGeometry
组成PathFigure
。这PathFigure
包含一堆线段。所以整个路径是连续的,由直线组成。将这条路径分成许多不同的小路径的好方法是什么?如果你很好奇,我需要这样做的原因是为了达到“路径淡出”的效果,而且似乎没有其他方法可以做到这一点。
所以我想取一条路径,把它分成许多不同的小路径,然后我将第一个小路径的不透明度设置为 0,最后一个小路径的不透明度设置为 1,并为中间的所有内容进行插值。另外,我可以使用它来使路径的尾部变小,并插入到路径的头部,它很大。有很多用途 - 我需要一种方法来为我的应用程序执行此操作。
wpf - Path Mini 语言 (Silverlight/WPF) 中 PathFigure 的 IsFilled="false" 等效项
我试图找到IsFilled="False"
在 PathGeometry 中使用的等价物,但对于Path Mini。
您可以看到下面的两条路径是相同的,除了IsFilled="False"
第二条具有几何形状的路径<PathGeometry>.<PathGeometry.Figures>.<PathFigure>
。这是所需的行为,但我想将它用于 Path Mini(即在第一个<Path>
)。我查看了文档,但似乎找不到任何内容,因为 Path Mini 似乎不是数字的集合。
据我了解,所有形状/几何图形都将在运行时转换为迷你路径,那么有没有办法反映编译后的 XAML 以查看解释器如何将带有 PathGeometry 的路径渲染为迷你路径?
wpf - ArcSegment 的旋转和方向
有没有办法让 ArcSegment 朝特定方向绘制?据我所知,它总是从上到下绘制。例如,我有一个 ArcSegment,它从180 度(270 度是北)开始绘制一个几乎为 180 度的椭圆。现在,绘图是顺时针方向的......好吧,对不起,让我告诉你。
左侧是我从一组转换值中收到的值,但我需要它像右侧一样。
我试过玩弄RotationAngle
,但这似乎没有任何效果,因为它只适用于 X 轴,而不适用于 Y 轴。
第一个 Path 的值来自转换例程,所以我不能轻易修改它们。
c# - 在 C#/WPF 中获取 PathGeometry(线)的长度
如果我有一条封闭的路径,我可以用它Geometry.GetArea()
来近似我的形状区域。这很棒,节省了我很多时间。但是周围有什么可以帮助我找到未闭合路径的长度吗?
我现在能想到的最好的方法是确保我多次使用PathGeometry
并调用该方法,获取点并添加所有这些点之间的距离。GetPointAtFractionLength
代码:
用法(XAML):
用法(代码):
double length = LengthOfPathGeometry(Bob, 10000);
对于这个例子,返回的结果应该在某个地方:1324.37
这似乎很好,但有其缺陷。如果我想要一个非常大的线的更准确的数字,我需要更多的步骤。如果你超过 100000 步,你会遇到很长的时间来近似。在我的测试机器上,每个方法调用需要几秒钟。
有谁知道更好的方法来近似任何形状的线的长度?
wpf - 使用 PathGeometry 的 WPF 实时图表性能
我正在尝试实现一个可以处理实时数据的图表,该数据每 1 毫秒出现一次。我轮询 50 毫秒的数据,这样我就不会每毫秒都重绘屏幕。我在画布上使用 PathGeometry 添加线段。我总是看到帧速率稳步下降,因为重绘变得越来越慢。我没想到我的电脑渲染一条大约有 10,000 点的线会如此困难。有什么我做错了吗?或者是否有其他一些设计理念可能更擅长处理 WPF 中的实时数据?
在 ViewModel 我有:
在视图中,我听到这个集合被更改并添加线段:
出于模拟目的,我使用 BackgroundWorker 注入点:
随着速度变慢,我还体验到 UI 无响应。我认为这是因为我进行了太多 ReportProgress 调用并填充了消息泵,但如果我能解决缓慢的渲染,我认为这个其他问题也会消失。我愿意接受任何建议!
algorithm - 通过一组点找到最宽的空直路径
我正在创建一个简单的游戏,并在为我的游戏设计 AI 时遇到了这个问题:给定笛卡尔坐标中一个矩形内的一组 N 个点,我需要找到通过这个矩形的最宽的直线路径。路径必须为空(即不包含任何点)。
我想知道是否有任何有效的算法来解决这个问题?你能推荐任何与这个问题相关的关键字/论文/任何东西吗?
编辑:矩形总是由其角落的 4 个点定义。我添加了一张图片用于说明。上图中的路径由两条红线确定
geometry - 在任意多边形中,如何检测任意边与另一边相交的自由度?
我正在为旅行推销员问题绘制一个多边形,并想测试任何路径的不相交,作为自适应停止遗传搜索的一种手段。我尝试简单地检查线段或交叉点,但有时会得到不正确的结果,即使保留一个或多个交叉点也会终止搜索。
database - 什么是存储和查询几何路径数据的好数据库/方法
我正在做一个跟踪 blob(人)的项目。我们想要跟踪他们的 xy 位置,将其转换为他们经过的路径的某种表示,并执行返回诸如“哪些路径靠近点 (a,b)”或“哪些路径从 (0, b) 开始”之类的查询或“哪些路径进入以 (a,b) 为中心、半径为 r 的圆”等。
我用谷歌搜索并看到了像 PostGIS 和 SpatiaLite 这样的 GIS 实现。我正在寻找我可以研究的其他“namedrops”,或者对适合您的特定解决方案的个人经验。
编辑:可能需要提到我正在使用 openFrameworks 进行编码,这是一个基于 c++ 的库,专为编码艺术应用程序而设计。我正在使用一个使用投影仪和相机设置将交互式应用程序投影到地板空间的设置。我的工作环境是 windows 上的 code::blocks。使用过 openframeworks 的人的回答是一个加分项!
wpf - GetPointAtFractionLength - 如何检查路径是否正确
我想知道是否有任何方法可以检查PathGeometry
.
我需要用它GetPointAtFractionLength
来获取路径上的某个点,但是对于某些路径,此函数会引发异常:
Value does not fall within the expected range
.