小编mvw*_*mvw的帖子

如何交叉两个多边形?

这似乎并不重要(它在各种论坛上得到了很多讨论),但我绝对需要将它作为更复杂算法的构建块.

输入:2D中的2个多边形(A和B),以[(x0, y0, x1, y2), ...]每个边的列表形式给出.这些点由doubles 对表示.我不知道它们是顺时针,逆时针还是任何方向.我知道他们不一定是凸的.

输出:表示A,B和交叉多边形AB的3个多边形.其中任何一个都可以是空(?)多边形,例如null.

优化提示:这些多边形代表房间和楼层边界.所以房间边界通常与地面边界完全相交,除非它属于同一平面上的另一层(argh!).

我有点希望有人已经在c#中完成了这个并且让我使用他们的策略/代码,因为到目前为止我在这个问题上发现的是相当艰巨的.

编辑:所以看起来我并不完全是鸡,因为这样做的前景微弱.我想在这里重述所需的输出,因为这是一个特例,可能会使计算更简单:

输出:第一个多边形减去所有相交的位,交叉多边形(复数是正常的).我对第二个多边形并不感兴趣,只是它与第一个多边形的交集.

EDIT2:我目前正在使用GPC(General Polygon Clipper)库,这非常容易!

c# intersection polygon

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

这个算法的运行时间是多少?(递归Pascal的三角形)

鉴于以下功能:

Function f(n,m)
   if n == 0 or m == 0: return 1
   return f(n-1, m) + f(n, m-1)
Run Code Online (Sandbox Code Playgroud)

什么是运行时的复杂性f?我知道如何快速和肮脏,但如何正确表征它?是O(2^(m*n))吗?

algorithm recursion big-o

7
推荐指数
2
解决办法
1461
查看次数

cURL:操作在0毫秒后超时

cURL给了我错误:

Operation timed out after 0 milliseconds with 0 out of 0 bytes received
Run Code Online (Sandbox Code Playgroud)

特别是,"0毫秒"部分是可疑的......

我的初始化代码:

$curl = curl_init($requestUrl); // private URL not published
curl_setopt($curl, CURLOPT_FRESH_CONNECT, true);
curl_setopt($curl, CURLINFO_HEADER_OUT, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_HTTPHEADER, 
  array("Content-Type: application/xml", "Accept: application/xml"));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_TIMEOUT, 20);
curl_setopt($curl, CURLOPT_FAILONERROR, false);
curl_setopt($curl, CURLOPT_HTTP200ALIASES, range(400, 599));
curl_setopt($curl, CURLOPT_SSLVERSION, 3);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
Run Code Online (Sandbox Code Playgroud)

超时似乎设置正确,可能与哪些相关?

php curl

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

cout在终端中不显示任何内容

我只是想让我的c ++代码在我的mac终端上正确输出,但它没有显示任何内容.我使用xcode作为文本编辑器,将文件保存为Code.cpp,然后在终端中键入g ++ Code.cpp.在我的代码有错误时显示错误之前,但现在它正确运行它没有显示任何输出.有什么想法吗?这是我的代码:

#include <iostream>
using namespace std;

    int main() {
        cout << "Hello World" << endl;
        return 0;

    }
Run Code Online (Sandbox Code Playgroud)

这是我放入终端的内容,它只是在没有"Hello World"输出的情况下跳到下一行.

jspencer$ g++ Code.cpp
jspencer$
Run Code Online (Sandbox Code Playgroud)

在此先感谢您的帮助!!

c++ macos terminal cout

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

找到矩阵中任何矩形之和的最快方法

我有amxn矩阵,希望能够计算任意矩形子矩阵的总和.对于给定的矩阵,这将发生几次.我应该使用什么数据结构?

例如,我想在矩阵中找到矩形的总和

1   2   3   4
5   6   7   8
9   10  11  12
13  14  15  16
Run Code Online (Sandbox Code Playgroud)

总和是68.

我要做的是逐行累积它:

1   2   3   4
6   8   10  12
15  18  21  24
28  32  36  40
Run Code Online (Sandbox Code Playgroud)

然后,如果我想找到矩阵的总和,我只需积累 28,32,36,40 = 136.只有四个操作而不是15个.如果我想找到第二和第三行的总和,我只累加15,18,21,24并减去1,2,3,4 = 6 + 8 + 10 + 12 + 15 + 18 + 21 + 24 = 68.但在这种情况下,我可以使用另一个矩阵,按列累积这个矩阵:

1   3   6   10
5   11  18  26
9   19  30  42
13  27  42  58
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我只是总和 …

algorithm math matrix

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

MATLAB-如何计算向量中的0和1

设一个v长度n为a的向量,v = randi([0 1],1,n)随机包含0或1.

获取向量表示每个0段或1段中有多少0或1的有效方法是什么?

例:

v = [1 0 0 0 1 1 0 0 1]   ----> 
    counts = [0 1 3 2 2 1]  (*0* zero, *1* one, *3* zeros, ....)

v = [0 0 1 0 0 0]   ---->
    counts = [2 1 3]
Run Code Online (Sandbox Code Playgroud)

PS总是首先计数0,如果向量以1开始,则结果向量的第一个条目,即计数(1),应为0.

matlab

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

将2D数组转换为嵌套的dictonary

我正在使用openpyxl读取和写入xlsx文件,出于某些数据操作的目的,我需要将我的工作表(我在2D矩阵中表示)转换为遵循特定格式的字典,这是我的矩阵.

[['Name', 'Age', 'Gender', 'Height', 'Hair Color'],
 ['Jay', '12', 'M', '123cm', 'Black'],
 ['Marie', '13', 'F', '100cm', 'Red'],
 ['Dan', '16', 'M', '200cm', 'Brown']
]
Run Code Online (Sandbox Code Playgroud)

我想翻译这个,以便生成的字典看起来像:

{

{ 'Jay;12;M' : 'Name': 'Jay', 'Age': '12', 'Gender': 'M', 'Height': '123cm', 'Hair Color' : 'Black'}, 

{ 'Marie;13;F' : 'Name': 'Marie', 'Age': '13', 'Gender': 'F', 'Height': '100cm', 'Hair Color' : 'Red'},

{ 'Dan;16;M' : 'Name': 'Dan', 'Age': '16', 'Gender': 'M', 'Height': '200cm', 'Hair Color' : 'Brown'},

}
Run Code Online (Sandbox Code Playgroud)

我对Python比较陌生,我相信字典理解是要走的路,但我不确定如何通过名称获取这些2D数组值,以便我可以正确构建我的键值对.

python arrays dictionary openpyxl

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

标签 统计

algorithm ×2

arrays ×1

big-o ×1

c# ×1

c++ ×1

cout ×1

curl ×1

dictionary ×1

intersection ×1

macos ×1

math ×1

matlab ×1

matrix ×1

openpyxl ×1

php ×1

polygon ×1

python ×1

recursion ×1

terminal ×1