在JPCT中沿3D对象的特定轴缩放

时间:2017-12-01 02:48:26

标签: opengl jpct

我已经浏览了JPCT中的3D对象documentation,但我无法找到一种方法来仅沿y轴缩放3D对象[圆柱体]。我的世界有多个对象,我的目标是扩展一个特定的对象。感谢任何线索。谢谢!!

像这个openGL函数glScalef(1,10,1)。

1 个答案:

答案 0 :(得分:0)

用户AGP在此处列出了实现此目的的方法: JPCT Forums

它基本上使用了以下顶点控制器类,并且我也成功地使用了它:

class VertexController extends GenericVertexController 
{
   public VertexController(Object3D toCheck) {
       super.init(toCheck.getMesh(), true);
   }

   protected void scale(SimpleVector scale) 
   {
      SimpleVector[] vertices = getSourceMesh();
      SimpleVector[] destination = getDestinationMesh();

      for (int i = 0; i < vertices.length; i++) 
      {
         vertices[i].x *= scale.x;
         vertices[i].y *= scale.y;
         vertices[i].z *= scale.z;
         destination[i].x = vertices[i].x;
         destination[i].y = vertices[i].y;
         destination[i].z = vertices[i].z;
      }

      this.updateMesh();
   }

   public void apply() {}
}

你可以这样称呼它:

vertexController = new VertexController(object);

然后在你的onDrawFrame中,或者需要的时候:

vertexController.scale(new SimpleVector(1,1.5f,1));