• 鼠标屏幕点选的实现方法


    地形编辑中用到最多的就是鼠标点选

    假设摄像机视点在o如图所示,玩家点击的P点(nMouseX,nMouseY),如果能求出OP向量那么用此向量与场景的三角形求交即可实现鼠标的点选功能
    一般在图形程序中可以获得的变量包括视点坐标O,视点的方向向量O',向上的方向向量UP,以及透视参数的中的视野张角θ,屏幕的像素高nHeight和像素宽nWidth,最近可是距离fMinView,最远可视距离fMaxView
    下面就用伪代码通过这些变量求取P在世界坐标系下的坐标:
    1.求出屏幕在世界坐标下的宽AB和高AC
    AB = tan(θ/2)*fMinView*2.0f
    AC = AB*nHeight/nWidth
    2.计算P点与屏幕中心的像素坐标差
    nDifferX = nMouseX - nWidth/2
    nDifferY = nHeight/2 - nMouseY (windows系统中鼠标在左上点为0,0点)
    2.求出与OO'和UP的正交向量Right = cross(OO',UP)
    3.求出O'P向量
    O'P = nDifferX/nWidth*AB*Right + nDifferY/nHeight*AB*UP
    4.P点的坐标为O'+O'P

  • 相关阅读:
    建造者模式
    模板方法模式
    抽象工厂模式
    工厂方法模式
    Josephus环问题
    单例模式
    求两个数的最大公约数
    Nginx的安装与部署
    左京大夫显辅
    java 调用第三方系统时的连接代码-记录
  • 原文地址:https://www.cnblogs.com/crown20/p/2198286.html
Copyright © 2020-2023  润新知