MATLAB:如何从用户点击中获取3D坐标?

MATLAB:如何从用户点击中获取3D坐标?,matlab,matrix,transformation,chess,Matlab,Matrix,Transformation,Chess,我正在用Matlab为我这学期的一门课程制作一个小的国际象棋游戏。我遇到的问题是让用户能够选择一个棋子 为了简化操作,我将其设置为用户通过单击棋子所在的正方形来选择棋子,而不是单击棋子本身(我认为这要困难得多)。我知道如何获取视口的x和y坐标,但如何将这些坐标转换为3空间坐标 我知道有多个x、y、z坐标与每个视口坐标关联,但我只对z=0的x、y、z坐标感兴趣(因为电路板本身位于与z轴相交的x、y平面上,z=0)。不特定于MATLAB,但这可能会有所帮助:给定相机参数和单击位置,你可以将光线投射到

我正在用Matlab为我这学期的一门课程制作一个小的国际象棋游戏。我遇到的问题是让用户能够选择一个棋子

为了简化操作,我将其设置为用户通过单击棋子所在的正方形来选择棋子,而不是单击棋子本身(我认为这要困难得多)。我知道如何获取视口的x和y坐标,但如何将这些坐标转换为3空间坐标


我知道有多个x、y、z坐标与每个视口坐标关联,但我只对z=0的x、y、z坐标感兴趣(因为电路板本身位于与z轴相交的x、y平面上,z=0)。

不特定于MATLAB,但这可能会有所帮助:给定相机参数和单击位置,你可以将光线投射到场景中并测试交叉点,但是考虑逆问题可能会更容易:将你的象棋网格方格映射到屏幕坐标上,然后在2D中与点击位置进行比较。请注意,这已在渲染场景时完成。

您可能需要从文件交换中查看。它允许您在3D中选择面片对象(无论如何,这可能是您想要创建电路板的方式)