laya.d3.utils.Utils3D的convert3DCoordTo2DScreenCoord这个接口api描述是不是错了?

“转换3D坐标系统到2D坐标系统”这个是不是描述反了,,应该是2d 到3d的转换吧??参见demo -- http://layaair.ldc.layabox.com ... ample
已邀请:

183*****755

赞同来自: xiaosong

这个你理解错了,这个demo的意思是把3d的正交投影坐标转换为2d的坐标。
仔细看那个代码中的正交视图下的3d坐标系统和2d坐标系统,我们想把球放在2d坐标系下的(200,100)位置,var translate:Vector3 = new Vector3(200, 100, 0),因为是正交投影坐标系所以z为0。如果不经过convert3DCoordTo2DScreenCoord的转换,球的位置会在屏幕的右上部分,但经过该函数装换后,小球的位置在3d正交投影的坐标系中为(200,-100,0),虽然输出的是3d坐标并赋给mesh,但在2d坐标系中则为(200,100)。

xujingming666

赞同来自: leeq3000

convert3DCoordTo2DScreenCoord 示例里面是2转3吧?看了asanwu的解释,反而糊涂了。。。。。。。。

leeq3000

赞同来自:

参考 3D基础 -- 2D和3D混合 70-73行代码
private var translate:Vector3 = new Vector3(200, 100, 0);//理解为屏幕坐标,左上角为(0,0)
var mesh:MeshSprite3D = scene.addChild(new MeshSprite3D(Mesh.load("sphere-Sphere001.lm"))) as MeshSprite3D;            
Utils3D.convert3DCoordTo2DScreenCoord(translate, convertTranslate);
mesh.transform.localPosition = convertTranslate;
 
这里明明就是将一个屏幕坐标,转换成了一个3d坐标,然后再赋给了mesh的localPosition 
 

要回复问题请先

商务合作
商务合作