[]laya.d3.utils.Utils3D的convert3DCoordTo2DScreenCoord这个接口api描述是不是错了?
“转换3D坐标系统到2D坐标系统”这个是不是描述反了,,应该是2d 到3d的转换吧??参见demo -- http://layaair.ldc.layabox.com ... ample
没有找到相关结果
已邀请:
要回复问题请先登录
3 个回复
183*****755
赞同来自: Laya_XS
仔细看那个代码中的正交视图下的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
leeq3000
赞同来自:
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