草庐IT

GEOMETRY

全部标签

c++ - OBB 和圆之间的二维碰撞检测数学

我正在创建一个2D游戏并想测试OBB(定向边界框)和圆之间的碰撞。我不确定执行此操作的数学和代码。我正在用C++和OpenGL创建游戏。 最佳答案 因为你的两个形状都是凸的,你可以使用SeparatingAxisTheorem.这是atutorial关于如何实现算法来做到这一点。本质上,您尝试找出是否可以在两个形状之间的某处画一条线,如果找不到,那么您就知道它们正在碰撞。引用资料和一般答案取自thisquestion. 关于c++-OBB和圆之间的二维碰撞检测数学,我们在StackOve

c++ - 两个 vector 之间的最短旋转方向

我的问题是关于计算二维中两个vector之间的最小角度的方向。我正在用C++制作游戏,其中一个障碍是热寻导弹发射器。我通过计算目标和子弹之间的vector、归一化vector然后乘以它的速度来让它工作。但是,我现在要回到这门课,让它变得更好。我不想立即锁定播放器,而是希望它仅在子弹vector在特定角度(子弹vector和vectorbulletloc->target之间的角度)内时才这样做。否则,我希望它以一定程度缓慢地向目标平移,从而为玩家提供足够的空间来避开它。我已经完成了所有这些(在vb.net项目中,所以我可以简化问题,解决问题然后用C++重新编写)。然而,即使最快的路线是逆

c++ - 在 C 或 C++ 中的 3D 空间实现中从 3 个点构建圆

我们有3(三)个xyz点在3D空间中定义一个圆,这个圆需要转换成折线(用于进一步渲染)。我正在寻找可以完成这项工作的现成C或C++函数或免费库。不明白为什么this关门了。我什至不能在那里回答我自己的问题。为你们感到羞耻。但你不会阻止知识的传播! 最佳答案 在真实3D中找到圆参数有一个更简单的解决方案,只需看看http://en.wikipedia.org/wiki/Circumscribed_circle中的“重心坐标”部分即可。.您可以从中提取以下优化代码://triangle"edges"constVector3dt=p2-p

c++ - 测地球的算法

我必须用均匀分布的小球制作一个球体。我认为最佳方法是构建一个基于三角形的测地线球体并将顶点用作我的球的中点。但是我没有编写生成顶点的算法。用C++或伪代码回答会更好。测地球示例:http://i.stack.imgur.com/iNQfP.png 最佳答案 使用@Muckle_ewe给我的链接,我能够编写以下算法:在main()之外classVector3d{//thisisaprettystandardvectorclasspublic:doublex,y,z;...}voidsubdivide(constVector3d&v1,

c++ - 使用网格中的顶点(2D 和 3D)查找边的算法

我有一个网格,其中包含某些类型的元素(例如三角形、四边形)。对于每个元素,我知道它的所有顶点,即三角形2D元素将有3个顶点v1、v2和v3,它们的x、y、z坐标是已知的。问题一我正在寻找一种将返回所有边的算法...在这种情况下:边缘(v1,v2),边缘(v1,v3),边缘(v2,v3)。根据每个元素有多少个顶点,该算法应该有效地确定边。问题二我正在使用C++,那么,存储上述算法返回的边信息的最有效方法是什么?例如,我只对一个元组(v1,v2)感兴趣,我想将其用于某些计算然后忘记它。谢谢 最佳答案 可以使用半边数据结构。基本上你的网格

c++ - 判断两条线是否相交

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:Howdoyoudetectwheretwolinesegmentsintersect?Determiningiftwolinesegmentsintersect?给定两行l1=((A0,B0),(A1,B1))和l2=((A2,B2),(A3,B3));Ax,Bx是整数并且(Ax,Bx)指定行的开始和结束。是否有仅使用整数运算来确定l1和l2是否相交的算法?(只需要一个bool答案。)我自己的方法是用定点算法计算交点附近的一个点。然后将解(a,b)代入以下方程:I:abs((A0+a*(A1-A0))-(A2

c++ - C++判断3条边是否构成三角形

我试图在C++中检查3个边是否形成一个三角形,但我试过的所有可能数字的答案都说错了......#include#includeusingnamespacestd;intmain(){inta,b,c;cin>>a>>b>>c;if(pow(a,2)==pow(b,2)*pow(c,2)||pow(b,2)==pow(a,2)*pow(c,2)||pow(c,2)==pow(a,2)*pow(b,2))cout 最佳答案 假设a、b、c是三角形的边。因此,它必须满足以下条件:a+b>ca+c>bb+c>a所有条件都必须为真。如果其中之

c++ - 最接近一组点的线

这个问题在这里已经有了答案:Howtofitthe2DscatterdatawithalinewithC++(7个答案)关闭9年前。给定一组点S(x,y)。找到与所有点的距离最小的线?即,最小化每个点与最佳直线之间的距离总和(绝对值或平方)。距离是指点和线之间的最短距离。也就是最常见的一种,欧氏空间中的欧氏距离。我尝试谷歌搜索但找不到任何相关结果,是否有任何线扫描算法可以完成这项任务?

c++ - 如何将球面贴图投影到球体/立方体上 : "Equirectangular to cubic"

更新:我发现,http://os.ivrpa.org/panosalado/wiki,在java中有一个实现。任何人在c或c++中有类似的东西吗?我有这张全景图,一张来自谷歌街景的球形map,我想把它映射到一个球体/立方体上。下面是一些示例和插图,我寻求的是可以做到这一点的库,或者一些实现指南。我试过了http://krpano.com/docu/tutorials/quickstart/#top给出底部列出的结果。它说明了我想要的,但是旋转轴关闭了。我需要创建直接前后左右的View。理想情况下,我想将它映射到球体并告诉它要提取的角度(立方体的方向)。[后、下、前、左、右、上]

c++ - C++ 中的射线网格交集或 AABB 树实现,开销很小?

你能推荐我...AABB树的经过验证的轻量级C/C++实现?或者,另一种有效的数据结构,加上轻量级的C/C++实现,来解决大量光线与大量三角形相交的问题?“大数”是指射线和三角形都有几十万。我知道AABB树是CGAL库的一部分,并且可能是像Bullet这样的游戏物理库的一部分。但是,我不希望在我的项目中有大量额外库的开销。理想情况下,我想使用一个小型的浮点型模板化头文件实现。我也会选择一堆CPP文件,只要它能轻松集成到我的项目中即可。对boost的依赖是可以的。是的,我用谷歌搜索过,但没有成功。我应该提一下,我的应用上下文是网格处理,而不是渲染。简而言之,我正在将引用网格的拓扑结构从3