ios - opengl根据点坐标构图后,不在屏幕可视范围内怎么解决
迷茫
迷茫 2017-04-17 17:25:15
0
1
409

在ios端利用opengl建模,成功展示了一个3d模型,update内容如下

CGSize size = self.view.bounds.size; float aspect = fabs(size.width / size.height); GLKMatrix4 projectionMatrix = GLKMatrix4MakePerspective(GLKMathDegreesToRadians(bigSize), aspect, 1.0f, 10.0f);//GLKMathDegreesToRadians值越大,模型越小(0-180) self.effect.transform.projectionMatrix = projectionMatrix; GLKMatrix4 modelViewMatrix = GLKMatrix4Translate(GLKMatrix4Identity, 0.0f, 0.0f, 0.0f); modelViewMatrix = GLKMatrix4Translate(modelViewMatrix, 0.0f, 0.0f, -2.0f); //平移 modelViewMatrix = GLKMatrix4Rotate(modelViewMatrix, _rotation, 0.1f, xxx, 1.0f); //旋转 GLKMatrix4 modelViewProjectionMatrix = GLKMatrix4Multiply(projectionMatrix, modelViewMatrix); GLint mat = glGetUniformLocation(0.0f, "modelViewProjectionMatrix"); glUniformMatrix4fv(mat, 1, GL_FALSE, modelViewProjectionMatrix.m);`

由于物体的坐标位置是在屏幕坐标范围外的,所以看不到物体。如何设置当物体显示的时候,物体实在屏幕中央?
简而言之,如何改变物体的中心点坐标或者某点坐标为屏幕中心点坐标?

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

Antworte allen (1)
Peter_Zhu

解决了,我最后根据模型文件中所有的顶点数据,去到了最大和最小的xyz值,根据xyz值求出模型的中心点坐标,然后根据比例将模型在(0.0.0)处重绘即实现了模型在屏幕中心显示。至于合适大小,则是求出模型的最大长径,然后根据这个模型的长径求出一个在屏幕上合适的比例。将所有的xyz值乘以此比例。。。。完美解决。希望有人能够用到!

    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage
    Über uns Haftungsausschluss Sitemap
    Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!