您的位置:首页 > 其它

3D场景点到2D屏幕点 坐标转换

2011-04-19 10:13 274 查看
BOOL CScreenMouseTrack::GetScreenCoordinates(const Vector3& vWorldPos, Vector2& _point)
{
assert(mCamera);
Vector3 hcsPosition = mCamera->getProjectionMatrix() * (mCamera->getViewMatrix() * vWorldPos);
// 	if((hcsPosition.x < -1.0f) || (hcsPosition.x > 1.0f) ||
// 		(hcsPosition.y < -1.0f) || (hcsPosition.y > 1.0f))
// 	{
// 		return FALSE;
// 	}
//////应该将-1-1之间变为0-1之间吧
_point.x = hcsPosition.x/2.0f + 0.5;
_point.y = 0.5f - hcsPosition.y/2.0f;//y值方向相反
// 	x = m_nWidth / 2 + (m_nWidth * hcsPosition.x / 2);
// 	y = m_nHeight / 2 - (m_nHeight * hcsPosition.y / 2);
return TRUE;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: