1、世界坐标转屏幕坐标

    /// <summary>/// 世界坐标转屏幕坐标/// </summary>/// <param name="parentRect"></param>/// <param name="worldPoint">世界坐标下的三维点位</param>/// <param name="offset">偏差值</param>/// <returns>目标二维坐标值</returns>public Vector2 WorldPosToScreenPos(RectTransform parentRect,Vector3 worldPoint,Vector2 offset){Vector2 anchoredPosition;Vector2 screenPosition = mainCamera.WorldToScreenPoint(worldPoint);RectTransformUtility.ScreenPointToLocalPointInRectangle(parentRect, screenPosition, mainCanvas.worldCamera, out anchoredPosition);return anchoredPosition + offset;}

2、三维位置实时映射到二维画布上

三维地图上某位置坐标,映射到屏幕画布上显示,在画布上的位置随三维沙盘移动而动;

    /// <summary>/// 三维地图上点,映射在屏幕画布上的poi点位的动态更新/// </summary>/// <param name="parentRect">点位的父物体</param>/// <param name="rectTransform">点位本身</param>/// <param name="point">点位对应三维沙盘上的位置</param>/// <param name="offset">偏移值</param>/// <returns></returns>protected IEnumerator UpdatePosition(RectTransform parentRect, RectTransform rectTransform, Vector3 point, Vector2 offset){Vector2 anchoredPosition;while (true){//三维沙盘上的位置对应画布上的位置Vector2 screenPosition = mainCamera.WorldToScreenPoint(point);RectTransformUtility.ScreenPointToLocalPointInRectangle(parentRect, screenPosition, mainCanvas.worldCamera, out anchoredPosition);rectTransform.anchoredPosition = anchoredPosition + offset;yield return null;}}

——————————————— 2022-04-23———————————————————

3、二维画布坐标转三维沙盘坐标

    /// <summary>/// 二维画布坐标转三维沙盘坐标/// </summary>/// <param name="targetPos2d"></param>/// <returns></returns>public Vector3 ScreenToWorldPos(Vector2 targetPos2d){Ray ray = mainCamera.ScreenPointToRay(targetPos2d);RaycastHit hit;Physics.Raycast(ray, out hit, 500000);return hit.point;}

4、鼠标点击屏幕的点/鼠标位置转换为世界坐标

    //通过射线检测,获取鼠标点击位置的世界坐标public void GetMouseWorldPos(){if (Input.GetMouseButtonDown(0)){Ray ray = mainCamera.ScreenPointToRay(Input.mousePosition);RaycastHit hit;//射线检测,第三个参数可根据需求设置或不设置,具体看api;Physics.Raycast(ray, out hit, 500000);Vector3 mousePos = hit.point;}}//直接把鼠标位置转化为世界坐标public void GetMousePos () {//获取鼠标在屏幕上的坐标Vector3 mousePosition = Input.mousePosition; //屏幕坐标转世界坐标,z轴值不能为0,否则转换失败Vector3 mouseWorldPos = mainCamera.ScreenToWorldPoint (new Vector3(mousePosition.x, mousePosition.y, 10.0f)); }

笔记——三维世界坐标和二维画布/屏幕坐标转换相关推荐

  1. python画车辆轨迹图_如何利用 Python 绘制酷炫的 车辆轨迹 — 速度时空图?三维数据用二维图像呈现...

    说明:本文系交通攻城狮原创文章,如需转载请私信联系,侵权必究. 2020,第 30 期,编程笔记 建议直接阅读精编版:如何利用 Python 绘制酷炫的 车辆轨迹 - 速度时空图?三维数据用二维图像呈 ...

  2. php三维数组转换二维数组,php 三维数组转二维数组(多维数组变合拼二维数组)(foreach循环 数组叠加)...

    /*************** * @function 三维数组转二维数组 * @Param: $array : 传入参数 * @Return: $tempArr 返回结果数组 ********** ...

  3. (三)matplotlib3.0画三维图(二维热图)

    教程示例 """ matplotlib3.0三维图 mayuhua 2020.5.17 """from mpl_toolkits impor ...

  4. matlab三维数组与二维矩阵相乘问题

    Matlab三维数组与二维矩阵相乘问题 近来在搞一个改进近场music算法的仿真问题,用matlab进行二维搜索的时候写了很多for循环,导致运行速度极慢.考虑到matlab语言本身的矩阵运算特点,改 ...

  5. matlab三维图、二维云图的可视化绘图

    matlab三维图.二维云图的可视化绘图 matlab三维图.二维云图的可视化绘图 1.meshgrid生成数据矩阵 2.可视化方案 3.shading类型 matlab三维图.二维云图的可视化绘图 ...

  6. MATLAB三维数组转为二维数组(时间序列分析中很有用)

    在MATLAB中三维数组转二维的方法 一.写该程序的初衷 在处理时间序列遥感数据的时候,我之前的做法是: 将时间序列数据读取为三维矩阵: 将该数据保存为BIP格式: 在每个像元上进行循环,取出其第三维 ...

  7. 三维坐标转换为二维坐标

    三维坐标转换为二维坐标 最近做项目用到三维坐标转换为二维平面坐标的转换公式.看了网上的很多资料,都不太适用自己的项目.最后决定自己来推导. 具体问题描述 如下图所示,将二维平面上的三维坐标系O-X'Y ...

  8. matlab将三维模型渲染成二维视图,由三维图生成二维视图的新探讨

    由三维图生成二维视图的新探讨 2019-03-10 15:16:42次浏览 袁美荣 摘 要:该文将详细阐述利用AUTOCAD的模型空间和图纸空间实现三维实体到二维视图的自动转换的原理分析.关键命令SO ...

  9. OpenCV 笔记(08)— 二维点、三维点、基于 Mat 的 std::vector 等常用数据结构的定义和输出

    1. 定义和输出二维点 Point2f p2(3, 4);cout << "[二维点] is "<< endl << p2 << e ...

最新文章

  1. See the World 2015-6-10
  2. 听课的时候保证基本信息的获取
  3. IntelliJ IDEA的配置优化
  4. hyper服务器虚拟网卡和实际网卡,Hyper-V 3 虚拟网卡带宽应用限制
  5. 洛谷 P1377 [TJOI2011]树的序 解题报告
  6. 北京环球度假区:尚未发布票务信息,未面向公众销售任何门票
  7. Linux内核深入理解系统调用(3):open 系统调用实现以及资源限制(setrlimit/getrlimit/prlimit)
  8. L2-007. 家庭房产-PAT团体程序设计天梯赛GPLT
  9. Ubuntu安装腾讯软件
  10. 一个在线文字转语音工具
  11. 输出一个由*组成的三角形图案_Python中实现个性图案的方案
  12. PTA换硬币(枚举)
  13. 如何把Windows10打造成Mac
  14. java 判断三角形计算面积
  15. android启动系统的图片裁剪工具
  16. 解决错误:IndentationError:expected an indented block
  17. 记录:解决firefox不同电脑上不能同步的问题
  18. 如何使用python-docx第三方库,操作读写doc Word文档,快速制作数据报表
  19. 钟汉良日记:为何我持续写日记四十天后,让他精神层面完全被影响?
  20. Ubuntu Server 20.04 LTS 安装配置 PostgreSQL

热门文章

  1. 分享一个程序猿小白两年工作经验的职业之路
  2. 【生成模型】DDPM概率扩散模型(原理+代码)
  3. 记录下服务器电源的功率计算
  4. 东南大学计算机学研招生人数,东南大学2020硕士研究生各专业报录比汇总(实考人数:录取人数)...
  5. 小米手机刷机固件下载链接
  6. 视频怎么转gif动图?
  7. ubuntu系统安装 firefox国内版并设置桌面快捷方式
  8. SCRM与传统CRM有什么区别?
  9. 二级MySQL数据库程序设计(一)
  10. python unix时间戳与正常时间转化