草庐IT

Geometry

全部标签

c++ - 在 OpenGL 中将纹理映射到球体时出现接缝问题

我正在尝试创建几何图形以在OpenGL中表示地球。我有一个或多或少的球体(虽然更接近地球的椭圆大地水准面)。我绘制了地球表面的纹理(可能是墨卡托投影或类似的东西)。纹理的UV坐标对应于几何体的纬度和经度。我有两个我无法解决的问题。我正在使用OpenSceneGraph,但我认为这是一个通用的OpenGL/3D编程问题。有一个非常明显的纹理接缝。我确定会发生这种情况,因为我不知道如何将UV坐标映射到出现接缝的XYZ。我只在环绕之前将UV坐标映射到最后一个顶点……您需要将两个不同的UV坐标映射到同一个XYZ顶点以消除接缝。是否有一个常用的技巧来解决这个问题,还是我做错了?两极发生了疯狂的漩

c++ - 在 OpenGL 中将纹理映射到球体时出现接缝问题

我正在尝试创建几何图形以在OpenGL中表示地球。我有一个或多或少的球体(虽然更接近地球的椭圆大地水准面)。我绘制了地球表面的纹理(可能是墨卡托投影或类似的东西)。纹理的UV坐标对应于几何体的纬度和经度。我有两个我无法解决的问题。我正在使用OpenSceneGraph,但我认为这是一个通用的OpenGL/3D编程问题。有一个非常明显的纹理接缝。我确定会发生这种情况,因为我不知道如何将UV坐标映射到出现接缝的XYZ。我只在环绕之前将UV坐标映射到最后一个顶点……您需要将两个不同的UV坐标映射到同一个XYZ顶点以消除接缝。是否有一个常用的技巧来解决这个问题,还是我做错了?两极发生了疯狂的漩

c++ - 在 OpenSceneGraph 中创建一个球体(使用 osg::Geometry)

我花了很长时间才让它工作,但我的Sphere无法显示。使用以下代码来制作我的功能:Creatinga3DsphereinOpenglusingVisualC++剩下的就是带有osg::Geometry的简单OSG。(注意:不是ShapeDrawable,因为您无法使用它实现自定义形状。)将顶点、法线、纹理坐标添加到VecArrays中。一方面,我怀疑有些行为不端,因为我保存的对象是半空的。有没有办法将现有的描述转换成OSG?原因?我想了解以后如何创建对象。确实,它与稍后的任务相关联,但目前我只是事先准备。旁注:由于我必须在没有索引的情况下制作它,所以我将它们排除在外。但是没有它们,我的

c++ - 在 OpenSceneGraph 中创建一个球体(使用 osg::Geometry)

我花了很长时间才让它工作,但我的Sphere无法显示。使用以下代码来制作我的功能:Creatinga3DsphereinOpenglusingVisualC++剩下的就是带有osg::Geometry的简单OSG。(注意:不是ShapeDrawable,因为您无法使用它实现自定义形状。)将顶点、法线、纹理坐标添加到VecArrays中。一方面,我怀疑有些行为不端,因为我保存的对象是半空的。有没有办法将现有的描述转换成OSG?原因?我想了解以后如何创建对象。确实,它与稍后的任务相关联,但目前我只是事先准备。旁注:由于我必须在没有索引的情况下制作它,所以我将它们排除在外。但是没有它们,我的

c++ - 按给定轴的角度对点进行排序?

如何通过从给定轴vector逆时针增加角度对点/vector数组进行排序?例如:如果0是轴vector,我希望排序后的数组按2、3、1的顺序排列。我有理由确定可以使用交叉产品、自定义比较器和std::sort()来做到这一点。 最佳答案 是的,您可以使用基于叉积的自定义比较器来实现。唯一的问题是一个简单的比较器不具有传递性。所以需要一个额外的步骤,以防止引用任一侧的角度被认为是接近的。这将比任何涉及trig的方法快得多。甚至都不需要先标准化。这是比较器:classangle_sort{pointm_origin;pointm_dre

c++ - 按给定轴的角度对点进行排序?

如何通过从给定轴vector逆时针增加角度对点/vector数组进行排序?例如:如果0是轴vector,我希望排序后的数组按2、3、1的顺序排列。我有理由确定可以使用交叉产品、自定义比较器和std::sort()来做到这一点。 最佳答案 是的,您可以使用基于叉积的自定义比较器来实现。唯一的问题是一个简单的比较器不具有传递性。所以需要一个额外的步骤,以防止引用任一侧的角度被认为是接近的。这将比任何涉及trig的方法快得多。甚至都不需要先标准化。这是比较器:classangle_sort{pointm_origin;pointm_dre

c++ - 如何在openCV C++上填充圆圈

使用openCV,如何填充使用C++中的HoughCircles找到的一些圆圈?此圆圈将用于在图像上创建蒙版。有更好的方法吗?谢谢。 最佳答案 您可以将圆外线的粗细传递给CV_FILLED或-1来填充圆circle(img,Point(50,50),50,Scalar(255,255,255),CV_FILLED,8,0);见OpenCVDoc了解更多信息。 关于c++-如何在openCVC++上填充圆圈,我们在StackOverflow上找到一个类似的问题:

c++ - 如何在openCV C++上填充圆圈

使用openCV,如何填充使用C++中的HoughCircles找到的一些圆圈?此圆圈将用于在图像上创建蒙版。有更好的方法吗?谢谢。 最佳答案 您可以将圆外线的粗细传递给CV_FILLED或-1来填充圆circle(img,Point(50,50),50,Scalar(255,255,255),CV_FILLED,8,0);见OpenCVDoc了解更多信息。 关于c++-如何在openCVC++上填充圆圈,我们在StackOverflow上找到一个类似的问题:

c++ - 从点创建 OOBB

如何为给定点创建最小的OOBB?创建AABB或球体非常容易,但创建最小OOBB时遇到问题。[编辑]第一个答案没有给我带来好的结果。我没有大量的点云。我的积分很少。我正在做碰撞几何生成。例如,立方体有36个点(6个边,每个三角形2个,每个三角形3个点)。第一篇文章的算法对立方体给出了不好的结果。立方体的示例点:http://nopaste.dk/download/3382(应该返回标识轴) 最佳答案 PCA/协方差/特征向量方法本质上是找到近似于对象顶点的椭圆体的轴。它应该适用于随机对象,但对于像立方体这样的对称对象会产生不好的结果。

c++ - 从点创建 OOBB

如何为给定点创建最小的OOBB?创建AABB或球体非常容易,但创建最小OOBB时遇到问题。[编辑]第一个答案没有给我带来好的结果。我没有大量的点云。我的积分很少。我正在做碰撞几何生成。例如,立方体有36个点(6个边,每个三角形2个,每个三角形3个点)。第一篇文章的算法对立方体给出了不好的结果。立方体的示例点:http://nopaste.dk/download/3382(应该返回标识轴) 最佳答案 PCA/协方差/特征向量方法本质上是找到近似于对象顶点的椭圆体的轴。它应该适用于随机对象,但对于像立方体这样的对称对象会产生不好的结果。