草庐IT

java - 确定一个球体是否被放置在它周围的其他球体完全包围

问题:给定一个球体列表,找到所有被球体完全包围的空白空间。详细信息:这是我正在研究的一个问题,我试图确定位于蛋白质中的空腔。我得到了构成蛋白质的原子列表((x,y,z)坐标和半径)。然后我运行我的算法,通过检查是否可以将探针(给定半径)放置在一个位置而不与其他球体发生碰撞,从而找到位于蛋白质边界内的所有空白空间。有两种类型的空隙,空隙和空腔。空隙空间是可以通向蛋白质或位于蛋白质外部的空间。空腔是完全被蛋白质原子包围的空隙。这是我们正在处理的样本“蛋白质”的图片。可以三个维度查看here.在蛋白质的中心附近有一个空腔,您看到的穿过蛋白质的隧道将被视为空隙空间,因为它没有被原子完全包围。示

c++ - 更正高度映射测地球体上的顶点法线

已经生成了一个测地线球体,并且正在使用perlin噪声生成山丘等。将研究使用tessalation着色器进一步划分。但是,我使用的是法线贴图,为此我在以下代码中生成切线和副切线://CalulatethetangentsdeltaPos1=v1-v0;deltaPos2=v2-v0;deltaUV1=t1-t0;deltaUV2=t2-t0;floatr=1.0f/(deltaUV1.x*deltaUV2.y-deltaUV1.y*deltaUV2.x);tangent=(deltaPos1*deltaUV2.y-deltaPos2*deltaUV1.y)*r;bitangent=(d

c++ - 没有过剩的 OpenGL 渲染球体 : What is wrong with this implementation?

在我的渲染循环中,我有以下逻辑。我还有其他东西渲染到屏幕上,它们也渲染了(我删除了该代码以切中要点)。这段代码不渲染球体,我不明白为什么不。我在数学上遗漏了什么吗?我已经逐步调试了调试器,值似乎是正确的。注意mBubbleDiameter在此对象的构造函数中设置为20。staticGLfloatstaticDegreesToRadians(GLfloattmpDegrees){returntmpDegrees*((std::atan(1.0f)*4)/180.0f);}voidLedPannelWidget::updateGL(){glMatrixMode(GL_PROJECTION)

c++ - 不完整的球体 OpenGL

我想使用VBO绘制一个球体作为顶点、颜色和UV坐标作为纹理。我的问题是球体没有“封闭”,原点有一个洞。我知道这是因为我的代码取决于每个顶点之间的(1/segments)距离;我正在处理segments=40。我知道,如果我提高那个值,洞会变低,但程序会变慢。不知道有没有办法在不增加变量的情况下消除这个洞。代码如下:for(inti=0;i这是我的输出: 最佳答案 我不认为这是一个洞。您绘制了一个线段太多,并导致它在南极绘制额外的三角形,纹理环绕:for(inti=0;i在第一个循环迭代中,i=0,角度将小于-0.5*pi,导致图片中

c++ - OpenGL:使用球坐标在球体上映射纹理

我有一个地球纹理,我想将其映射到一个球体上。由于它是一个单位球体,模型本身没有纹理坐标,我能想到的最简单的事情就是计算每个顶点的球坐标并将它们用作纹理坐标。textureCoordinatesVarying=vec2(atan(modelPositionVarying.y,modelPositionVarying.x)/(2*M_PI)+.5,acos(modelPositionVarying.z/sqrt(length(modelPositionVarying.xyz)))/M_PI);在片段着色器中执行此操作时,效果很好,因为我从(插值的)顶点位置计算纹理坐标。但是当我在顶点着色器

c++ - 如何轻松地用CGAL在球体上构造Voronoi图?

首先,我是CGAL的新手,但经常用C++编程。我想使用CGAL来构造球体上点的Voronoi图。我自己为我的一项研究实现了一个,但数据结构不是很通用,我想使用像CGAL这样更健壮的工业库。从CGAL的文档来看,似乎我们需要使用3DDelaunay三角剖分结合凸包。另外,我找到一篇论文RobustandEfficientDelaunayTriangulationsofPointsonOrClosetoaSphere,它使用CGAL作为基础,但我找不到它的代码。所以任何人都可以提供有关如何在CGAL中执行此操作的示例?CGAL是否有计划用更高效的算法直接支持球形Delaunay和Voron

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

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

c++ - 球体世界实现 C++

什么是实现、存储和渲染球形世界的最佳方式,例如孢子或无限中的世界,但没有孢子的中间阶段,以及无限宇宙中的多个世界。不要假设行星本身是如何产生的或其大小/规模。 最佳答案 对于渲染,您需要使用某种细节级别算法,以便从靠近行星表面到远处无缝移动。有许多动态LOD算法(seehere)。一种称为ROAM的旧算法可以适用于处理球形物体或行星(sphericalROAM)。Geometryclipmaps是一种更新、更流行的算法,可以适应球面aswell.至于存储数据,您可能需要研究纹理、高度图等的程序生成(取决于您的需要)。这类似于Infi

ios - 三角测量 - 如何找到 3 个球体的交点(iBeacons)

给定这3个球体方程,用于计算3个球体交集的iOSObjectiveC方法是什么:1)(x-x1)^2+(y-y1)^2+(z-z1)^2=(r1)^22)(x-x2)^2+(y-y2)^2+(z-z2)^2=(r2)^23)(x-x3)^2+(y-y3)^2+(z-z3)^2=(r3)^2//我想要的方法-(NSArray*)findIntersectionOfThreeSpheresWithFirstSphereRadius:(float)r1xCoordinate:(float)x1yCoordinate:(float)y1zCoordinate:(float)z1andWithS

android - 球体上的 OpenGL 纹理

通过这个函数,我可以在Android的OpenGLES1.0中创建一个球体:publicBall(GL10gl,floatradius){ByteBufferbb=ByteBuffer.allocateDirect(40000);bb.order(ByteOrder.nativeOrder());sphereVertex=bb.asFloatBuffer();points=build();}privateintbuild(){doubledTheta=STEP*Math.PI/180;doubledPhi=dTheta;intpoints=0;for(doublephi=-(Math.