我正在使用Matlab为本学期的一门课程创建一个小型国际象棋游戏。我遇到麻烦的是让用户能够选择其中一个棋子。
为了简化事情,我正在制作它,以便用户通过点击棋子所在的方块而不是点击棋子本身来选择一个棋子(我认为这将更加困难)。我知道如何获取视口的x和y坐标,但是如何将这些坐标转换为3空间坐标?
我知道有多个x,y,z坐标与每个视口坐标相关联,但我只对x,y,z坐标感兴趣,其中z = 0(因为板本身在x中,y与z轴相交的平面,其中z = 0)。
答案 0 :(得分:2)
您可能需要查看文件交换中的select3d。它允许您选择3D中的补丁对象(这可能是您想要创建板的方式)。
答案 1 :(得分:0)
不是MATLAB特定的,但这可能会有所帮助:给定相机参数和点击位置,您可以将光线投射到场景中并测试交叉点,但是考虑反问题可能会容易得多:将国际象棋网格方块映射到屏幕坐标上,然后在2D中与点击位置进行比较。请注意,渲染场景时已经完成 。