[ZT]Pos3D to Pos2D in M3G (From Lyo)

FW: http://lyo.blogsome.com/2007/04/12/pos3d-to-pos2d-in-m3g/

Thanks Lyo!

 Camera m_camera;                // current camera
  Transform m_camTransform;   // current camera transform
  Transform m_objTransform;    // transform of the render obj

  
void  Pos3D2Pos2D( float [] pos3D,  float []pos2D)
  
{
      
float pos[] = new float[]{pos3D[0], pos3D[1], pos3D[2], 1}   
      
      
//get current position
      m_objTransform.transform(pos);
      
      
//apply camera transform
      Transform invTrans = new Transform(m_camTransform);      
      invTrans.invert();
      invTrans.transform(pos);
      
      
//get z
      float z = -pos[2];
      
float x = 0;
      
float y = 0;

      
//projection
      Transform transProjection = new Transform();
      camera.getProjection(transProjection);
      transProjection.transform(pos);      
      
      
// NDC to View
      x = pos[0* getWidth()/ (2 * z);
      y 
= pos[1* getHeight()/ (2 * z);      
      

      
//convert to screen pos.
      pos2D[0= (int)(getWidth()/2 + x);
      pos2D[
1= (int)(getHeight()/2 - y);
      
  }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值