天道酬勤,学无止境

triangulation

是否可以在 scipy.spatial 的 Delaunay 中强制执行边缘(受约束的 delaunay 三角剖分)?(Is it possible to enforce edges (constrained delaunay triangulation) in scipy.spatial's Delaunay?)

问题 我正在试验 scipy.spatial 对 Qhull 的 Delaunay 三角剖分的实现。 是否可以以保留输入顶点定义的边的方式生成三角剖分? (编辑:即受约束的 Delaunay 三角剖分。)可以使用 Python 的三角形包来完成。 例如,在下图中,有几个三角形(蓝色)忽略了由顶点定义的边(红色)的位置。 有没有办法强制这些边,使它们在所有情况下都是三角剖分结果的一部分? 回答1 您正在寻找的是受约束的 Delaunay 三角剖分,不幸的是scipy.spatial实现不支持它。 正如您所指出的,三角形确实具有该功能——为什么不使用它呢?

2021-09-21 02:43:27    分类:技术分享    python   scipy   triangulation   delaunay

在 CGAL 正则三角剖分中插入带信息的加权点(Insertion of weighted point with info in CGAL regular triangulation)

问题 我正面临一个我希望其他人以前遇到过的问题,因为我找不到出路! 我在 CGAL 中有一个常规三角剖分,我希望在其中插入一些带有 info std::pair<myweightpoint, myinfo>加权点,并在插入后获取顶点( Vertex_handle )的句柄! 问题是没有这样的功能。 它存在几个插入函数: Vertex_handle Regular_triangulation::insert ( const Weighted_point & p ) ; 这将返回一个Vertex_handle ,它很酷,但不带 INFO 的加权点,这对我和我对这些顶点的处理非常重要。 std::ptrdiff_t Regular_triangulation::insert ( WeightedPointWithInfoInputIterator first, WeightedPointWithInfoInputIterator last ) ; 这允许我插入一些带有信息的加权点(这很好),但没有给我插入顶点的句柄。 此外,由于我一次插入一个点,现在我正在做这样的事情: v_wpoints.resize(1) ; v_wpoints[0] = std::make_pair(myweightpoint, myinfo) ; rt.insert(v_wpoints.begin(), v

2021-09-20 06:34:03    分类:技术分享    c++   insert   triangulation   cgal   weighted

在 CGAL 正则三角剖分中插入带信息的加权点(Insertion of weighted point with info in CGAL regular triangulation)

问题 我正面临一个我希望其他人以前遇到过的问题,因为我找不到出路! 我在 CGAL 中有一个常规三角剖分,我希望在其中插入一些带有 info std::pair<myweightpoint, myinfo>加权点,并在插入后获取顶点( Vertex_handle )的句柄! 问题是没有这样的功能。 它存在几个插入函数: Vertex_handle Regular_triangulation::insert ( const Weighted_point & p ) ; 这将返回一个Vertex_handle ,它很酷,但不带 INFO 的加权点,这对我和我对这些顶点的处理非常重要。 std::ptrdiff_t Regular_triangulation::insert ( WeightedPointWithInfoInputIterator first, WeightedPointWithInfoInputIterator last ) ; 这允许我插入一些带有信息的加权点(这很好),但没有给我插入顶点的句柄。 此外,由于我一次插入一个点,现在我正在做这样的事情: v_wpoints.resize(1) ; v_wpoints[0] = std::make_pair(myweightpoint, myinfo) ; rt.insert(v_wpoints.begin(), v

2021-09-20 06:31:41    分类:技术分享    c++   insert   triangulation   cgal   weighted

Libgdx 多边形三角剖分(Libgdx polygon triangulation)

问题 好的,所以我有一个多边形(简单但凹形),我试图将其切成三角形以使其与其他多边形碰撞。 我知道我的多边形是凹面的,所以我决定使用 LibGDX EarClippingTriangulator来设法将它切成三角形。 所以,通过这段代码,我得到了我的三角形顶点: public void triangulate() { Vector<float[]> trianglesVertices = new Vector<float[]>(); ShortArray pointsCoords = new ShortArray(); EarClippingTriangulator triangulator = new EarClippingTriangulator(); // Cut in triangles pointsCoords = triangulator.computeTriangles(this.getTransformedVertices()); // Make triangles for (int i = 0; i < pointsCoords.size / 6; i++) { trianglesVertices.add(new float[] { pointsCoords.get(i), pointsCoords.get(i+1), pointsCoords.get(i+2)

2021-09-17 22:21:11    分类:技术分享    libgdx   polygon   triangulation   convex   concave

您如何使用三角测量确定具有 3 个节点的用户的位置?(How do you pin point the location of a user with 3 nodes, using Triangulation?)

问题 我试图通过他们的蓝牙强度(RSSI 值)找到用户。 我有 3 个 Raspberry PI,每个都收集用户的信号强度。 假设节点返回: node1 = 65 node2 = 70 node3 = 75 我如何通过三角测量找到用户并将他们定位在地图上,并输出 RSSI 值? 我研究了三边测量和 Ceva 定理,但不知道如何实现它们。 我不确定如何在环境中定位节点,我是否给主节点一个 x=0 y=0 的位置,我给其他两个节点什么? 回答1 您的方法基于一些站不住脚的假设。 三边测量是根据到已知位置的三个(或四个,如果在三维空间中工作)距离测量值来确定空间中的位置。 三角测量是基于三个角度(信号来自哪个方向)对已知位置的测量来确定空间中的位置。 三个 Raspberry PI 节点在空间中是固定的,并且您有一些测量系统,其中每个节点的 (x,y (z)) 位置是已知的。 您拥有的是以某些功率单位(例如 dBm)表示的三个信号强度值,并且您希望它代表与特定接收器的距离。 问题是,除非你在一个大的空房间里做这件事,否则它不是一个特别好的代理。 RF 信号会从一些东西上反弹,形成很少的干扰节点、阴影和各种有趣的东西。 根据环境的混乱程度,这可能会使三边测量结果的准确性变差,或者完全毫无价值。 假设您在一个空仓库中操作,首先您必须选择一些坐标系并进行一些测量并为您的节点分配位置。

2021-09-15 23:48:19    分类:技术分享    algorithm   math   map   bluetooth   triangulation

如何通过已知路由器上的三角测量确定我的位置?(How can I determine my position by triangulation on known routers?)

问题 有没有可用的开源软件? 基本上,我只想根据位置固定且已知的路由器的信号强度进行三角测量。 我意识到可能存在干扰的情况,但让我们坚持列出已知的源代码。 谢谢。 回答1 我找到了这个解决方案:http://redpin.org 他们免费为您提供 iOS 和 Android 平台。 所有的资源你可以下载看看。 有一堆文件和其他工作人员可以帮助您 回答2 我不知道有什么三边测量软件……应该有人写一个开源库。 看看三边测量公式。 它们应该不难实施。 困难的事情是将你的点和路由器点放在一个网格上,你对路由器位置的测量应该告诉你如何做的决定。 一旦您将所有内容都映射到网格上,公式就并不复杂,也应该不难弄清楚。 回答3 我不知道任何可用的软件,但是......考虑到信号强度,写这个会很简单吗? 将信号强度转换为距离 Triangulate Trilaterate 位置(有关公式,请参阅 http://en.wikipedia.org/wiki/Trilateration) 回答4 你可以试试这些项目: WiFiPS - 基于 WiFi 的室内定位系统 open_wps - WiFi 定位系统

2021-09-14 08:10:09    分类:技术分享    wifi   triangulation

CGAL:二维约束 Delaunay 三角剖分 - 向约束添加信息(CGAL: 2D Constrained Delaunay Triangulation - Adding information to constraints)

问题 可以将信息(如整数)附加到点,然后再将它们添加到三角仪对象。 我这样做是因为我一方面需要一个 int 标志,我稍后使用它来定义我的纹理坐标,另一方面我需要一个索引,以便我可以创建一个索引的 VBO。 http://doc.cgal.org/latest/Triangulation_2/Triangulation_2_2info_insert_with_pair_iterator_2_8cpp-example.html 但是我只想插入约束边缘而不是点。 如果我插入两个 CGAL 会返回奇怪的结果,因为点已被输入两次(一次作为点,一次作为受约束边缘的点)。 http://doc.cgal.org/latest/Triangulation_2/Triangulation_2_2constrained_8cpp-example.html 是否可以以与点信息相同的方式连接到“约束”,以便我只能使用此函数cdt.insert_constraint( Point(j,0), Point(j,6)); 在我迭代结果面之前? 后来当我遍历三角形时,我需要某种方式来访问我之前定义的 int 标志。 像这样,但不是在顶点上,而是在由约束边缘定义的线段的“末端”上: for(CDT::Finite_faces_iterator fit = m_cdt.finite_faces_begin()

2021-09-13 06:53:55    分类:技术分享    constraints   triangulation   cgal   delaunay

如何绘制等边彩色三角形?(How to plot an equilateral color triangle?)

问题 我想在 MATLAB 中制作一个类似于此图的颜色图: 我已经设法创建了创建顶点所需的所有点 [x,y],并且我有一张带有每个顶点颜色的地图,因此我可以获得以下内容。 但我不明白如何使轴工作。 到目前为止的代码: % Equilateral grid tcorner = [0.0, 0.5, 1.0; 0.0, 1.0*sqrt(3)/2, 0.0]; tg = triangle_grid( 1/0.05, tcorner ); tgx = tg(1,:); tgy = tg(2,:); % Create triangles tri = delaunay(tgx,tgy); % Plot h = trisurf(tri, tgx, tgy, colorvector); 和网格功能: function triangle_grid(n, tcorner) ng = ( ( n + 1 ) * ( n + 2 ) ) / 2; tg = zeros ( 2, ng ); p = 0; for i = 0 : n for j = 0 : n - i k = n - i - j; p = p + 1; tg(1:2,p) = ( i * t(1:2,1) + j * t(1:2,2) + k * t(1:2,3) ) / n; end end end 回答1

2021-09-12 10:06:00    分类:技术分享    matlab   plot   matlab-figure   triangulation   delaunay

How to plot an equilateral color triangle?

I would like to make a color plot in MATLAB similar to this plot: I have managed to create all the points [x,y] needed in order to create the vertexes and I have a map with colors of each vertex, so I can get the following. But I do not get it how to make the axis work. Code so far: % Equilateral grid tcorner = [0.0, 0.5, 1.0; 0.0, 1.0*sqrt(3)/2, 0.0]; tg = triangle_grid( 1/0.05, tcorner ); tgx = tg(1,:); tgy = tg(2,:); % Create triangles tri = delaunay(tgx,tgy); % Plot h = trisurf(tri, tgx, tgy, colorvector); And the grid function: function triangle_grid(n, tcorner) ng = ( ( n + 1 ) * ( n + 2

2021-09-06 15:14:58    分类:问答    matlab   plot   matlab-figure   triangulation   delaunay

Send Multiple Pings without waiting for reply Windows C#

Im currently doing research towards my final year BSc project. The final product will include indoor location tracking functionality. The traditional, or most utilised method seems to be RSSI triangulation, but I am keen to attempt to improve the accuracy of the PING method as I think this would be better suited to locations that may suffer from signal attenuation (the locations I am intending to use the device may have a moderate ammount of radio interference). I was wondering if it was possible to write software in c# that would mimick the ping flood ability of linux ping utility(which

2021-09-05 11:21:33    分类:问答    c#   windows   wifi   ping   triangulation