小编Jun*_*Jun的帖子

什么是在boost库中计算Voronoi Diagram的边界框

最近我试图使用库boost来计算Voronoi图.该库中的算法基于扫描线.但它不是基于边界框来生成图表.此库中的一些Voronoi边缘是无限的,应该被剪裁.现在我对这些无限的边缘感到困惑.因为它们应该依赖于边界框,请参见下图作为示例:

如果边界框是内部白色矩形,那么带有黑色十字的四个部分是无限的.否则,如果边界框是外部黑色矩形,则这四条线是有限的,并且还会出现一些其他边.

有人能告诉我这个库里有什么吗?我找不到这个问题的答案.我真的需要一个边界框来定义这些细胞.非常感谢!!!

在此输入图像描述

boost voronoi edge

9
推荐指数
1
解决办法
1470
查看次数

如何赋予有限边缘无限的优势?

我发现在boost库中,对于voronoi图,一些边缘数据是无限的.根据指示,它必须被剪裁.但我无法找到如何做到这一点.请问有人可以给我一个示例代码吗?

谢谢

c++ boost voronoi

7
推荐指数
1
解决办法
1842
查看次数

如何根据多个条件从numpy数组中删除行?

我有一个包含4列和数千行的文件.我想删除第一列中的项目在特定范围内的行.例如,如果我的文件中的数据如下:

18  6.215   0.025
19  6.203   0.025
20  6.200   0.025
21  6.205   0.025
22  6.201   0.026
23  6.197   0.026
24  6.188   0.024
25  6.187   0.023
26  6.189   0.021
27  6.188   0.020
28  6.192   0.019
29  6.185   0.020
30  6.189   0.019
31  6.191   0.018
32  6.188   0.019
33  6.187   0.019
34  6.194   0.021
35  6.192   0.024
36  6.193   0.024
37  6.187   0.026
38  6.184   0.026
39  6.183   0.027
40  6.189   0.027
Run Code Online (Sandbox Code Playgroud)

我想删除第一项在20到25之间或30到35之间的行.这意味着我期望的输出是:

18  6.215   0.025
19  6.203   0.025
26  6.189   0.021 …
Run Code Online (Sandbox Code Playgroud)

python arrays numpy

6
推荐指数
2
解决办法
2万
查看次数

将Gnuplot变量传递给shell表达式

我试图在gnuplot中获取文件的第一个元素:

data = "file.dat"
x = `cat data | head -n 2 | tail -n 1 | awk '{print $1}'`
Run Code Online (Sandbox Code Playgroud)

但这不断给我以下错误:

no such file or directory
Run Code Online (Sandbox Code Playgroud)

我应该写一些像x =的东西 cat $data | head -n 2 | tail -n 1 | awk '{print $1}'

(带美元)

显然,这也是不正确的.

有任何想法吗?

shell gnuplot

4
推荐指数
2
解决办法
4566
查看次数

编译时提高几何距离()错误

我只是写了一个简单的例子,由 boost ( http://www.boost.org/doc/libs/1_52_0/libs/geometry/doc/html/geometry/quickstart.html ) 给出。编译过程中出现一些错误。我使用 eclipse 和 Mingw 来编译它。有人能告诉我有什么问题吗?

测试代码如下:

#include <iostream>
using namespace std;

#include <boost/geometry.hpp>
#include <boost/geometry/geometries/point_xy.hpp>
#include <boost/geometry/geometries/polygon.hpp>
#include <boost/geometry/algorithms/distance.hpp>

using namespace boost::geometry;

int main() {
cout << "!!!Hello World!!!" << endl; 
model::d2::point_xy<int> p1(1, 1), p2(2, 2);
cout << "Distance p1-p2 is: " << distance(p1, p2) << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)

错误如下:

c:\program files\mingw64\bin\../lib/gcc/x86_64-w64-  
mingw32/4.7.1/include/c++/bits/stl_iterator_base_funcs.h:114:5:   
required by substitution of 'template<class _InputIterator> 
typename std::iterator_traits::difference_type 
std::distance(_InputIterator, _InputIterator) [with _InputIterator 
= boost::geometry::model::d2::point_xy<int>]'
..\src\test.cpp:22:50:   required from here
c:\program files\mingw64\bin\../lib/gcc/x86_64-w64-  
mingw32/4.7.1/include/c++/bits/stl_iterator_base_types.h:166:53: …
Run Code Online (Sandbox Code Playgroud)

c++ boost compilation boost-geometry

1
推荐指数
1
解决办法
1048
查看次数

标签 统计

boost ×3

c++ ×2

voronoi ×2

arrays ×1

boost-geometry ×1

compilation ×1

edge ×1

gnuplot ×1

numpy ×1

python ×1

shell ×1