FPS矩阵的应用

矩阵的算法,也就是把三维坐标转为屏幕坐标
x1,y1为人物脚底的坐标,y2为头顶的y坐标


BOOL WordToScreen(float mcax, float mcay, float mcaz, float to[3])
{float x1, y1,y2, w;x1 = matrix[0][0] * mcax + matrix[0][1] * mcay + matrix[0][2] * mcaz + matrix[0][3];y1 = matrix[1][0] * mcax + matrix[1][1] * mcay + matrix[1][2] * mcaz + matrix[1][3];y2 = matrix[1][0] * mcax + matrix[1][1] * mcay + matrix[1][2] * (mcaz+60) + matrix[1][3];w = matrix[3][0] * mcax + matrix[3][1] * mcay + matrix[3][2] * mcaz + matrix[3][3];if (w < 0.01f)return FALSE;x1 = x1 / w;y1 = y1 / w;y2 = y2 / w;to[0] = ((g_winRect.right - g_winRect.left) / 2.0 * x1) + (x1 + (g_winRect.right - g_winRect.left) / 2.0);to[1] = -((g_winRect.bottom - g_winRect.top) / 2.0 * y1) + (y1 + (g_winRect.bottom - g_winRect.top) / 2.0);to[2] = -((g_winRect.bottom - g_winRect.top) / 2.0 * y2) + (y2 + (g_winRect.bottom - g_winRect.top) / 2.0);return TRUE;}

用来绘制方框也很简单
循环读取绘制就行了
0.57是你想绘制方框的比例

 float w = (EnemyXY[1]- EnemyXY[2])*0.57/2;DrawEsp(gamehwnd, EnemyXY[0]-w, EnemyXY[2], EnemyXY[0] +w, EnemyXY[1] );

还有一种用三角函数来计算X,Y坐标的方法不需要矩阵,只需要FOV即可计算(但此方法算出坐标不准确而且过于繁琐)以后会分析。

关于FPS透视原理(三)相关推荐

  1. 关于FPS透视原理的研究(一)

    关于FPS透视原理的研究(一) 方向一GDI绘制 1.CE找基址,人物X,Y,Z鼠标X,Y 这里我选择获取模块句柄的方式为跨进程访问 还有一种为注入方法用到GetModuleHandle 读取数据并在 ...

  2. FPS透视原理(完)

    重新修改一下把以下基址修改就可使用 #define TOP_HEIGHT 25//微调顶部高度 #define SCALE 0.57//方框比例const DWORD HP_offset = 0x9C ...

  3. 逆向知识之CS辅助/外挂专题.2.实现CS1.6透视原理

    逆向知识之CS辅助/外挂专题.2.实现CS1.6透视原理 一丶透视简介 我们涉及到FPS游戏.免不了说透视.自瞄什么的. 在CS1.6中. 有OpenGl.也有D3D. 透视的方法很多. gl透视(也 ...

  4. opengl计算帧率_或许是迄今为止第一篇讲解 fps 计算原理的文章吧

    前言 fps,是 frames per second 的简称,也就是我们常说的"帧率".在游戏领域中,fps 作为衡量游戏性能的基础指标,对于游戏开发和手机 vendor 厂商都是 ...

  5. D3D9 HOOK [透视原理]

    最近研究了下FPS游戏透视方法,市面上透视大概分为两种,一种是方框透视 就是在游戏角色模型上画一个框,另外一种就是Z缓冲区透视,这种透视原理是对指定模型(一般是人物模型)禁用Z缓冲进行深度测试,当然这 ...

  6. 绘画基础学习之两点透视原理

                                          前言 在上一篇中,我们讲述了透视原理中的一点透视.一点透视只有一个灭点,通过一组斜线来表示空间纵深感.下面我们将要学习的是两 ...

  7. 3D动画起步(透视原理)

    透视原理在两门课程上,我们会接触到,一个是物理学,但听起来好像抽像,但另一个听起来似乎很感性哪就是美术学.学到今天也许你会问,动画究竟是属于哪个学科的,真的很难说了,计算机也好,美学也罢,好像都综合了 ...

  8. 或许是迄今为止第一篇讲解 fps 计算原理的文章吧

    前言 fps,是 frames per second 的简称,也就是我们常说的"帧率".在游戏领域中,fps 作为衡量游戏性能的基础指标,对于游戏开发和手机 vendor 厂商都是 ...

  9. HIDL示例-C++服务创建Client验证-Android10.0 HwBinder通信原理(三)

    摘要:本节主要来讲解Android10.0 Native层的HIDL服务创建和Native层的Client验证 阅读本文大约需要花费18分钟. 文章首发微信公众号:IngresGe 专注于Androi ...

最新文章

  1. 对称加密和非对称加密
  2. 最长不含重复字符的子字符串
  3. logo qt添加_linux下如何给qt程序添加图标?
  4. android 自定义背景园,Android 自定义ProgressBar 进度条颜色和背景颜色
  5. linux chown命令: 修改文件或目录的所有者或群组
  6. linux 析构函数地址获取_析构函数实现多态
  7. 为什么选择spark
  8. vs 外部依赖项、附加依赖项以及如何添加依赖项目
  9. mysql命令行操作语句_MySQL常用命令行操作语句
  10. 续流二极管作用及工作原理
  11. tumblr_如何在您的Tumblr博客中添加论坛
  12. Navicat Premium 数据库开发工具
  13. 数据库系统概论(王珊,萨师煊版)范式之前要点一览(简略)
  14. Android常用的数据结构
  15. [转帖]Linux查找文件6个高效工具
  16. 辞职了,离职手续怎么办?
  17. 中英文文献哪里找?七个网站三款软件帮你轻松搞定
  18. SQLyog连接数据库报错2058
  19. CCIR656,YUV,Decoder,Encoder,Directshow问题资料收集
  20. Asp.net MVC 上传大文件(超过50M)的设置

热门文章

  1. Android自定义没有资源文件的圆形进度条ProgressBar
  2. JdbcTemplate增删改查总结
  3. PHP“垂死挣扎”的十年!
  4. html5svg地图api,提取 ECharts 中的svg地图信息
  5. 5000词学英语——DAY1
  6. 公司抽奖小程序(自定义名单,空格控制滚动、抽奖,可作弊,可满足千人团队, 带可执行程序下载及源代码)
  7. Vulnhub-medium_socnet
  8. dxc 3.0 线程的生命周期
  9. 微型计算机的主要硬件以及技术指标,微型计算机的硬件组成.doc
  10. 请列举你所知道的Linux发行版与开源软件