小编Zoo*_*tor的帖子

2D Geometry库:LGPL替代CGAL?

CGAL似乎只为我即将开展的项目做了我需要的一切.它可以从弧线段创建多边形并对它们运行布尔运算.它已经有空间排序软件包,可以节省很多时间用于一些事情,整个图书馆似乎非常标准化和精心策划.

对于大多数软件包(非常基本的软件包除外),许可证只是QPL(即将推出的4.0版本的GPL)的问题.我的预算微薄,可能无法收集资金购买CGAL中需要它的特定包装的商业许可证.

我对这种图书馆的具体需求是:

  • 精确的2D欧几里德空间
  • 复杂的多边形
  • 多边形能够具有曲线(弧)段
  • 对这些多边形的布尔运算
  • 多边形偏移
  • 多边形分区或有效三角测量
  • 刻有面积和多边形拟合算法
  • 可能是一些具有圆形范围搜索的空间排序结构

总而言之,我正在寻找一个精确的精确的二维几何C++库. 最好是麻省理工学院,LGPL一次性或低成本的一次性免版税许可证低于500美元.

Boost得到了一些基本结构,但据我所知,他们缺乏很多更高级别的功能.任何已扩展的图书馆?我会考虑自己做,但我缺乏做得好的专业知识,它会延长我的项目相当多.

为了清楚起见,我不是在寻找2D 图形库,只是纯粹的几何结构.

c++ geometry lgpl computational-geometry

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

"Uint32","int16"之类; 他们是标准的c ++吗?

我对c ++很陌生,但我已经掌握了基础知识.我在阅读其他代码时遇到了"Uint32"(各种大写)和类似数据类型的使用,但我找不到任何提及它们的文档.我知道"Uint32"是一个32位无符号整数,但我的编译器没有.我正在使用visual c ++ express,它无法从我所知道的任何形式识别它.

是否有一些编译器默认读取这些数据类型,或者让这些程序员将它们自己声明为类或#define常量?

我可以看到使用它们来准确知道整数的长度,因为正常的声明似乎因系统而异.使用它们还有其他优点或缺点吗?

c++

29
推荐指数
3
解决办法
8万
查看次数

如果列表中的所有==某事

使用Python 2.6,有没有办法在一个语句中检查序列的所有项是否等于给定值?

[pseudocode]
my_sequence = (2,5,7,82,35)

if all the values in (type(i) for i in my_sequence) == int:
     do()
Run Code Online (Sandbox Code Playgroud)

而不是说:

my_sequence = (2,5,7,82,35)
all_int = True
for i in my_sequence:
    if type(i) is not int:
        all_int = False
        break

if all_int:
    do()
Run Code Online (Sandbox Code Playgroud)

python python-2.6

25
推荐指数
3
解决办法
5万
查看次数

预期的无限递归,无返回函数

无限递归通常是不希望的,当它发生时通常会导致堆栈溢出或段错误.

但是出于理论的缘故和普通的好奇心,我一直在想是否有可能有意识地创造实际的无限递归.

在C++和C中工作,其中堆栈通常为每个函数调用增长,并且每个函数返回并弹出它处理的堆栈部分.

这是想法.是否可以强制函数清除它自己的堆栈空间然后调用另一个函数,以便新函数有效地替换第一个函数,而第一个函数不需要返回,然后通过循环再次触发.

我不只是考虑将普通循环作为一种可能的用途,如果有的话.循环通常可以很好地完成他们的工作.但是,如果您使用它通过节点网络发送信号,那么它会在自己的进程线程中无限期地继续运行,直到它们达到某个条件.它可能是一个可用于解决某些问题的工具.

记住,我不是在问它是否实用,只有在可能的情况下.对于科学!

c c++ theory

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

其他的库#define命名冲突

很难为这个问题找到合适的标题.无论如何...

我目前正在为SDL中的游戏制作GUI.我已经完成了软件绘图,当我出现一个奇怪的错误时,我正在开始使用它的OpenGL部分.我包含了"SDL/SDL_opengl.h"标头并编译.它抛出"错误C2039:'DrawTextW’:是不是'GameLib :: FontHandler’中的一员",这是一个很简单的错误,但我没有什么所谓的DrawTextW,只有FontHandler :: DrawText的.我搜索DrawTextW并在标题"WinUser.h"中的#define调用中找到它!

//WinUser.h
#define DrawText DrawTextW
Run Code Online (Sandbox Code Playgroud)

显然它用DrawTextW替换了我的DrawText!如何阻止它溢出到我的代码中呢?

改变我自己的函数名称是一件小事,但这样的命名冲突似乎非常危险,我真的想知道如何一起避免它们.

干杯!

c++ opengl sdl

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

如何链接cpp源文件中的静态库?

有一个#pragma命令可以从源文件而不是从项目设置链接到库中.我似乎无法记住它.

这里有人能提醒我吗?

谢谢

c c++ visual-studio

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

将va_arg两次传递给相同值的函数结果

我正在尝试使用va_arg在我的GUI库中创建一个通用工厂函数.在同一函数中传递va_arg两次时,它们传递相同的值而不是两个不同的值:

GUIObject* factory(enumGUIType type, GUIObject* parent, ...){
   va_list vl;
   va_start(vl, parent);
   ...
   label->SetPosition(va_arg(vl, int), va_arg(vl, int));
   va_end(vl);
   return finalObjectPointer;
}

factory(LABEL, theParent, 100,200); // Results in position 200:200
Run Code Online (Sandbox Code Playgroud)

是什么导致了这种意外行为

c++ variadic-functions

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

boost :: function中的命名空间循环或代码泄漏?

我真的很不高兴.我是否设法做了一些事情导致这种情况,或者它是在boost中未封闭的命名空间块,还是VS c ++ 2008中的一些错误?我肯定我已经正确地关闭了所有自己的命名空间,所有包含都在它们之外和之上,并且我的所有头文件都包含了警卫.

替代文字http://lowtown.se/stuffs/superboost.png

boost/function.hpp仅包含在此标头中.我的库中的另外两个头文件包含boost/cstdint.hpp但它们没有这个问题.

c++ boost namespaces visual-studio-2008

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