Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opengl 获取模型的中心(位置、比例和旋转)_Opengl_Matrix_Position - Fatal编程技术网

Opengl 获取模型的中心(位置、比例和旋转)

Opengl 获取模型的中心(位置、比例和旋转),opengl,matrix,position,Opengl,Matrix,Position,我开始看openGL教程,要创建世界的实体,使用的是一个通用类,它只保存三件事:元素的位置、比例和旋转。有了它,任何时候都可以渲染元素,创建一个模型矩阵乘以这三个元素 我的问题是:如何用这三样东西得到这个元素的中心位置 例如,我们在(0,0,0)位置有一个元素,比例为(10,10,10),旋转为(0,0,0)。我怎么知道中心位置是什么?这取决于相机还是类似的东西?我怎样才能得到这个绝对的中心位置 编辑: 更多信息: float ar = getAspectRatio(); cam->se

我开始看openGL教程,要创建世界的实体,使用的是一个通用类,它只保存三件事:元素的位置、比例和旋转。有了它,任何时候都可以渲染元素,创建一个模型矩阵乘以这三个元素

我的问题是:如何用这三样东西得到这个元素的中心位置

例如,我们在(0,0,0)位置有一个元素,比例为(10,10,10),旋转为(0,0,0)。我怎么知道中心位置是什么?这取决于相机还是类似的东西?我怎样才能得到这个绝对的中心位置

编辑:

更多信息:

float ar = getAspectRatio();
cam->setOrthoParams(ar*-100.f, ar*100.f, -100.f, 100.f, -100.0f, 100.f);

这样,如何计算边界框?

如果要计算某种几何中心,还需要知道模型几何体


例如,计算边界框中心:遍历所有未转换的顶点,并找到最小和最大的X、Y、Z值。它们的平均值将定义边界框中心。然后你可以对这一点应用位置和比例变换,得到变换后的中心。

情况是,它不考虑图像的任何宽度或高度。它只是用天平。。。正交参数为100。我用更多信息编辑了我的帖子。。。我需要计算边界框,是的。这只是相机参数,它不告诉任何元素。但它定义了对象的宽度/高度,对吗?如果世界宽度是100px,对象的比例是20px,那么它就像世界的20%。不是吗?我只需要知道比例和相机之间的关系…比例乘以物体的原始大小。如果原始对象的x大小为10px,x比例为6,则其最终x大小将为60px。但要找出原始大小,您必须知道网格数据。如果您使用ngl,则item->calcDimensions()将为您计算边界框,然后item->getBBox()将为您计算边界框,item->getCenter()将为您计算顶点加权中心。