zoukankan      html  css  js  c++  java
  • ARFoundation

    ARFoundation - touch point坐标点测试

    本文目的是为了看一下Android手机上touch之后,对应的点相关信息,主要包括:

    • 点的屏幕坐标,以左下角为原点;
    • 点的viewport坐标系下的坐标,以左下角为原点;
    • 点的世界坐标系下的坐标;

    屏幕坐标系和viewport坐标系,均如下所示:

    代码如下:

    void Update()
    {
        if (Input.touchCount > 0)
        {
            Debug.Log("TouchTest touch number is: " + Input.touchCount);
            for (int i=0; i<Input.touchCount; ++i)
            {
                Touch touch = Input.GetTouch(i);
                Debug.Log("TouchTest touch" + Convert.ToString(i) + 
                          " screen position is: " + touch.position);
                Debug.Log("TouchTest touch" + Convert.ToString(i) + 
                          " viewport position is: " + Camera.main.ScreenToViewportPoint(touch.position));
                Debug.Log("TouchTest touch" + Convert.ToString(i) + 
                          " world position is: " + Camera.main.ScreenToWorldPoint(touch.position));
            }
        }
    }
    
    手机屏幕的位置描述 Screen Position Viewport Position World Position
    中间 (743.0, 1654.0) (0.5, 0.5, 0.0) (0.1, 0.0, 0.0)
    左上角 (69.0, 2906.0) (0.0, 1.0, 0.0) (0.0, 0.0, -0.1)
    右上角 (1388.0, 2960.0) (1.0, 1.0, 0.0) (0.0, 0.0, 0.0)
    右下角 (1390.0, 190.0) (1.0, 0.1, 0.0) (0.0, 0.0, 0.0)
    左下角 (89.0, 217.0) (0.1, 0.1, 0.0) (0.0, 0.0, 0.0)

    因为当前的投影方式是透视投影,所谓的转换得到的世界坐标系的位置是,相机位于世界坐标系中的位置

    版权说明

    作者: grassofsky

    出处: http://www.cnblogs.com/grass-and-moon

    本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 原文链接 如有问题, 可邮件(grass-of-sky@163.com)咨询.

  • 相关阅读:
    四种PHP异步执行的常用方式
    PHP 多进程和多线程的优缺点
    试着用workerman开发一个在线聊天应用
    Python代码报错看不懂?记住这20个报错提示单词轻松解决bug
    PHP面试题大全(值得收藏)
    常见排序算法(三)
    常见排序算法(二)
    常见排序算法(一)
    NumPy 学习笔记(四)
    JavaScript 事件
  • 原文地址:https://www.cnblogs.com/grass-and-moon/p/14585085.html
Copyright © 2011-2022 走看看