屏幕坐标_屏幕坐标系 - CSDN
精华内容
参与话题
  • 屏幕坐标获取工具

    2020-07-27 23:33:56
    方便获取系统屏幕坐标的工具,轻量级,解压即用.非常方便
  • 点击屏幕坐标

    2019-03-14 16:11:04
    package ... import java.awt.AWTException; import java.awt.MouseInfo; import java.awt.Point; import java.awt.Robot; import java.awt.event.ActionEvent;...import java.awt.event.Ac...

    package com.hodehtml.demo.controller;

    import java.awt.AWTException;
    import java.awt.MouseInfo;
    import java.awt.Point;
    import java.awt.Robot;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.InputEvent;
    import java.util.Timer;
    import java.util.TimerTask;

    import javax.swing.JButton;
    import javax.swing.JDialog;
    import javax.swing.JOptionPane;

    public class Main1 {
    static boolean ifRun = true;
    static JButton startBt;
    static JButton endBt;
    public static void main(String[] args) {
    // 显示主界面
    showMain();
    }

    static Thread thread = new Thread(new Runnable() {
    
        @Override
        public void run() {
            Robot robot = null;
            try {
                robot = new Robot();
            } catch (AWTException e) {
                e.printStackTrace();
            }
            // 模拟移动到当前鼠标位置
            while (ifRun) {
                //Point point = MouseInfo.getPointerInfo().getLocation();
                //System.out.println("x=" + point.getX() + ",y=" + point.getY());
                try {
                    Thread.sleep(5000);
                    robot.mouseMove((int) 1460.0, (int)743.0);
                    // 模拟鼠标按下左键
                    robot.mousePress(InputEvent.BUTTON1_MASK);
                    // 模拟鼠标松开左键
                    robot.mouseRelease(InputEvent.BUTTON1_MASK);
                    Thread.sleep(5000);
                    robot.mouseMove((int) 1460.0, (int)743.0);
                    // 模拟鼠标按下左键
                    robot.mousePress(InputEvent.BUTTON1_MASK);
                    // 模拟鼠标松开左键
                    robot.mouseRelease(InputEvent.BUTTON1_MASK);
    
                    Thread.sleep(5000);
                    robot.mouseMove((int) 1566.0, (int)868.0);
                    // 模拟鼠标按下左键
                    robot.mousePress(InputEvent.BUTTON1_MASK);
                    // 模拟鼠标松开左键
                    robot.mouseRelease(InputEvent.BUTTON1_MASK);
                    Thread.sleep(5000);
                    robot.mouseMove((int) 1859.0, (int)670.0);
                    // 模拟鼠标按下左键
                    robot.mousePress(InputEvent.BUTTON1_MASK);
                    // 模拟鼠标松开左键
                    robot.mouseRelease(InputEvent.BUTTON1_MASK);
                    Thread.sleep(5000);
                    robot.mouseMove((int) 1660.0, (int)877.0);
                    // 模拟鼠标按下左键
                    robot.mousePress(InputEvent.BUTTON1_MASK);
                    // 模拟鼠标松开左键
                    robot.mouseRelease(InputEvent.BUTTON1_MASK);
                    Thread.sleep(5000);
                    robot.mouseMove((int) 1860.0, (int)670.0);
                    // 模拟鼠标按下左键
                    robot.mousePress(InputEvent.BUTTON1_MASK);
                    // 模拟鼠标松开左键
                    robot.mouseRelease(InputEvent.BUTTON1_MASK);
    
    
                   // robot.keyPress(1);
                    //robot.keyRelease(1);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
    
            }
    
        }
    });
    
    static public void showMsg(String msg) {
        JOptionPane.showMessageDialog(null, msg, "提示信息",
                JOptionPane.PLAIN_MESSAGE);
    }
    
    static public void showMain() {
        JDialog dialog = new JDialog();
        // 设置大小
        dialog.setSize(200, 100);
        // 设置标题
        dialog.setTitle("界面");
    
        startBt = new JButton("开始");
        endBt = new JButton("结束");
        // 绑定监听
        startBt.addActionListener(actionListener);
        endBt.addActionListener(actionListener);
        startBt.setBounds(35, 10, 60, 40);
        endBt.setBounds(90, 10, 60, 40);
        // 设置布局为空,使用坐标控制控件位置的时候,一定要设置布局为空
        dialog.setLayout(null);
        // 添加控件
        dialog.add(startBt);
        dialog.add(endBt);
        // 设置dislog的相对位置,参数为null,即显示在屏幕中间
        dialog.setLocationRelativeTo(null);
        // 设置当用户在此对话框上启动 "close" 时默认执行的操作
        dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
        // 设置是否显示
        dialog.setVisible(true);
    }
    
    static ActionListener actionListener = new ActionListener() {
    
        @Override
        public void actionPerformed(ActionEvent e) {
    
            if (e.getSource() == startBt) {
                showMsg("已开始——————请在三秒内点击");
                new Timer().schedule(new TimerTask() {
                    @Override
                    public void run() {
                        showMsg("已开始获取鼠标位置并已启动线程");
                        thread.start();
                    }
                }, 3000);
    
            }
    
            if (e.getSource() == endBt) {
                ifRun = false;
                showMsg("结束");
            }
        }
    };
    

    }

    展开全文
  • 屏幕坐标查看工具

    2020-07-30 23:33:25
    查看屏幕上某一点的坐标,鼠标指向改点即可,
  • 屏幕坐标系和视口坐标系

    千次阅读 2018-05-18 08:44:52
    屏幕坐标系1.屏幕坐标系: 手机屏幕或者电脑屏幕的一个坐标系。2.屏幕坐标是以像素来定义的, 屏幕左下角为原点(0,0), 右上角为(Screen.width,Screen.height), width是屏幕的宽度, height是屏幕的高度, Z值是摄像机...
    一.屏幕坐标系
    1.屏幕坐标系: 手机屏幕或者电脑屏幕的一个坐标系。
    2.屏幕坐标是以像素来定义的, 屏幕左下角为原点(0,0), 右上角为(Screen.width,Screen.height), width是屏幕的宽度, height是屏幕的高度, Z值是摄像机世界坐标取反,并且以相机的世界单位来衡量的。
    3.屏幕坐标和相机之间满足: Screen.width = Camera.main.pixelWidth和Screen.height = Camera.main.pixelHeight这两个条件。
    4.鼠标的位置坐标属于屏幕坐标。通过Input.mousePosition获取鼠标的屏幕坐标。
    二.创建工程
    1.创建一个游戏工程, 命名为ScreenViewPort

    2.在Project视图中创建3个文件夹, Scene文件夹、Resources文件夹和Script文件夹

    3.将当前场景保存为GameScene

    4.创建ScreenPosition游戏脚本


    5.在Hierarchy视图中创建一个空的GameObject, 命名为GameManager,并把ScreenPosition绑定在该对象上

    6.更改屏幕分辨率为480 * 800

    7.编写代码

    using UnityEngine;
    
    public class ScreenPosition : MonoBehaviour
    {
    	void Update () 
    	{
    		if(Input.GetMouseButtonDown(0))
    		{
    			Debug.Log ("屏幕坐标:" + Input.mousePosition);
    		}
    	}
    }

    8.运行点击屏幕打印

    屏幕坐标:(9.0, 33.0, 0.0)

    屏幕坐标:(458.0, 22.0, 0.0)

    屏幕坐标:(228.0, 410.0, 0.0)

    屏幕坐标:(458.0, 795.0, 0.0)

    三.视口坐标系

    1.摄像机的前面有一个长方形的小框子, 那个即为视口。


    2.视口坐标是标准化后的屏幕坐标。视口坐标是以0到1间的数字来表示的, 它的范围是以左下角为(0,0), 右上角为(1,1)定义的这样一个矩形。视口坐标是一个3D坐标, Z轴是以相机的世界单位来衡量的。通过对比可以发现视口坐标和屏幕坐标特别的相似。

    3.摄像机视口比例:public float aspect{get;set;},此属性用于获取或设置Camera视口的宽高比例值。

    4.void ResetAspect();恢复长宽比为屏幕的长宽比。

    5.代码

    using UnityEngine;
    
    public class CameraAspect : MonoBehaviour
    {
    	void Start () 
    	{
    		Debug.Log ("默认宽高比例:" + Camera.main.aspect);
    	}
    
    	void OnGUI () 
    	{
    		if(GUILayout.Button("摄像机宽高比例为1"))
    		{
    			Camera.main.ResetAspect ();
    			Camera.main.aspect = 1;
    		}
    
    		if(GUILayout.Button("摄像机宽高比例为2"))
    		{
    			Camera.main.ResetAspect ();
    			Camera.main.aspect = 2;
    		}
    	}
    }

    四.屏幕坐标和视口坐标的转换

    1.从视口空间到屏幕空间的变换位置: Vector3 ViewportToScreenPoint(Vector3 position);

    2.从屏幕空间到视窗空间的变换位置: Vector3 ScreenToViewportPoint(Vector3 position);

    3.代码

    using UnityEngine;
    
    public class ScreenViewPortPosition : MonoBehaviour 
    {
    	void Start()
    	{
    		Debug.Log ("摄像机视口坐标转换成屏幕坐标[(0,0,0),"+Camera.main.ViewportToScreenPoint(new Vector3(0,0,0))+"]");
    		Debug.Log ("摄像机视口坐标转换成屏幕坐标[(0.5,0,0),"+Camera.main.ViewportToScreenPoint(new Vector3(0.5f,0,0))+"]");
    		Debug.Log ("摄像机视口坐标转换成屏幕坐标[(0,0.5,0),"+Camera.main.ViewportToScreenPoint(new Vector3(0,0.5f,0))+"]");
    		Debug.Log ("摄像机视口坐标转换成屏幕坐标[(0.5,0.5,0),"+Camera.main.ViewportToScreenPoint(new Vector3(0.5f,0.5f,0))+"]");
    		Debug.Log ("摄像机视口坐标转换成屏幕坐标[(1,0,0),"+Camera.main.ViewportToScreenPoint(new Vector3(1,0,0))+"]");
    		Debug.Log ("摄像机视口坐标转换成屏幕坐标[(0,1,0),"+Camera.main.ViewportToScreenPoint(new Vector3(0,1,0))+"]");
    		Debug.Log ("摄像机视口坐标转换成屏幕坐标[(1,1,0),"+Camera.main.ViewportToScreenPoint(new Vector3(1,1,0))+"]");
    	}
    
    	void Update () 
    	{
    		if(Input.GetMouseButtonDown(0))
    		{
    			Debug.Log ("摄像机屏幕坐标转换成视口坐标:["+Input.mousePosition+","+Camera.main.ScreenToViewportPoint(Input.mousePosition)+"]");
    		}
    	}
    }
    展开全文
  • 屏幕坐标

    2019-09-17 08:38:22
    from PyQt5.QtWidgets import QApplication,QWidget,QPushButton,QMainWindow app = QApplication(sys.argv) ... print('显示坐标系-方法一:') print(f"widget.x():{widget.x()}:窗口左上角横坐标") ...
    
    from PyQt5.QtWidgets import QApplication,QWidget,QPushButton,QMainWindow
    
    app = QApplication(sys.argv)
    
    def onClickButton():
        print('显示坐标系-方法一:')
        print(f"widget.x():{widget.x()}:窗口左上角横坐标")
        print(f"widget.y():{widget.y()}:窗口左上角纵坐标")
        print(f"widget.width():{widget.width()}:客户区宽度")
        print(f"widget.height():{widget.height()}:客户区高度")
    
        print('显示坐标系-方法二:')
        print(f"widget.geometry().x():{widget.geometry().x()}:客户区左上角横坐标")
        print(f"widget.geometry().y():{widget.geometry().y()}:客户区左上角纵坐标")
        print(f"widget.geometry().width():{widget.geometry().width()}:客户区宽度")
        print(f"widget.geometry().height():{widget.geometry().height()}:客户区宽度")
    
        print('显示坐标系-方法三:')
        print(f"widget.frameGeometry().x():{widget.frameGeometry().x()}:窗口左上角横坐标")
        print(f"widget.frameGeometry().y():{widget.frameGeometry().y()}:窗口左上角纵坐标")
        print(f"widget.frameGeometry().width():{widget.frameGeometry().width()}:窗口区宽度")
        print(f"widget.frameGeometry().height():{widget.frameGeometry().height()}:窗口区宽度")
    
    # 生成Qwidget对象,作为顶层窗口
    widget = QWidget()
    # 生成QPushButton对象,widget作为父类
    button = QPushButton(widget)
    button.setText('按钮')
    # 连接信号与槽
    button.clicked.connect(onClickButton)
    
    button.move(50,50)
    # 将窗口的工作区宽度和高度分别设置为300像素和240像素
    widget.resize(300,240)
    # 将窗口的左上角坐标移动到(250,200)位置
    widget.move(250,200)
    
    widget.setWindowTitle('屏幕坐标系')
    widget.show()
    
    sys.exit(app.exec_())
    

    在这里插入图片描述
    运行结果:

    显示坐标系-方法一:
    widget.x():250:窗口左上角横坐标
    widget.y():200:窗口左上角纵坐标
    widget.width():300:客户区宽度
    widget.height():240:客户区高度
    显示坐标系-方法二:
    widget.geometry().x():250:客户区左上角横坐标
    widget.geometry().y():222:客户区左上角纵坐标
    widget.geometry().width():300:客户区宽度
    widget.geometry().height():240:客户区宽度
    显示坐标系-方法三:
    widget.frameGeometry().x():250:窗口左上角横坐标
    widget.frameGeometry().y():200:窗口左上角纵坐标
    widget.frameGeometry().width():300:窗口区宽度
    widget.frameGeometry().height():262:窗口区宽度
    

    参考文章:
    https://blog.csdn.net/qq_37764129/article/details/81407544

    展开全文
  • JS视口坐标,屏幕坐标,页面坐标分析 视口坐标 clientX clientY 页面坐标 pageX pageY 代码: console.log("视口坐标位置:","clientX:",e.clientX,"clientY:"...

    JS视口坐标,屏幕坐标,页面坐标分析


    视口坐标

        clientX
        clientY

    这里写图片描述

    页面坐标

        pageX
        pageY

    这里写图片描述
    代码:

     console.log("视口坐标位置:","clientX:",e.clientX,"clientY:",e.clientY);
     console.log("屏幕坐标位置:","screenX:",e.screenX,"screenY:",e.screenY)
     console.log("页面坐标位置:","pageX:",e.pageX,"pageY:",e.pageY);
     console.log("页面滚动距离:",document.documentElement.scrollTop+document.body.scrollTop);
     console.log("视口+页面滚动:",e.clientY+document.documentElement.scrollTop+document.body.scrollTop)

    结果:
    这里写图片描述
    屏幕坐标
    其相对于电脑屏幕,对于活动的窗口浏览器,其没任何价值,则不细说了

    定位和尺寸


    元素
    clientWidth,clientHeight :元素可视区部分,padding和width属性值之和,元素边框和滚动条不包括在内。
    offsetWidth,offsetHeight:元素在页面中占据的宽度总和,包括width,padding,border,滚动条宽高
    scrollWidth,scrollHeight:表示元素的总宽高,包括由于溢出而无法展示在网页的不可见部分

    scrollLeft,scrollTop: 元素滚动距离
    clientX,clientY : 以浏览器左上为原点
    offsetX,offsetY:以事件源左上为原点,(ev.srcElement)

    展开全文
  • 手机屏幕坐标获取方法

    万次阅读 2016-11-30 16:30:14
    1.手机自带的隐私--开发者工具--显示指针(一般安卓4.0以上的都有这个选项,以下的就不确定了,我的测试机2.0版本的就...2.monkeyrunner录制时获取,打开monkeyrecorder,随便点击都能在右侧出现相应的坐标 3.DDMS也可以
  • android 屏幕坐标总结

    千次阅读 2017-03-14 00:16:45
    android 屏幕坐标好多个,有时候傻傻分不清楚,经常记错,然后只能一个个试。尴尬~~ 把它们总结下来,以备不时之需嘿嘿。 一、视图坐标 最外面一层是屏幕,左上角是坐标原点,向右向下是x、y正方向。中间那层...
  • 手机屏幕坐标

    万次阅读 2013-06-09 14:03:35
    整个坐标系是以手机屏幕左上角为原点(0,0),如果在屏幕没有滑动之前,这一理解肯定是ok的,但在滑屏之后,就会产生很多歧义和混淆,原因在于使用过程当中,很多方法的参数并非是参照屏幕,而是相对于父视图,对这...
  • 【Unity3D】世界坐标与屏幕坐标

    万次阅读 2017-05-08 17:42:04
    Unity3D由于是在三维世界中编程,而最终的结果是需要反馈到肉眼所示的2D屏幕之上的。...其实在于我个人看来,关键是世界坐标与屏幕坐标之间的互转。 在Unity3D中一打开就会有一个主照相机Main Camera,根
  • 屏幕坐标向世界坐标转换

    千次阅读 2013-05-29 14:24:34
    计算机中有很多坐标系,对象坐标系、世界坐标系、裁剪坐标系、屏幕坐标系!OpenGL流水线很容易实现上述顺序的转换。从网上查的信息: 1. 设备坐标系与屏幕坐标系 设备坐标(Device Coordinate)又称为物理坐标...
  • 现在我已经实现了基本的旋转部分,拖动鼠标相机就转动,但没有定点转动,现在就剩下定点拖动旋转这个功能了,我的思路是将鼠标点击屏幕的屏幕坐标转换成opengl的世界坐标,通过这个点构造一个射线,求出射线和地球的...
  • 本文主要介绍重写自带的一些方法,拾取屏幕和窗口坐标信息 效果如下: 分析: 定时服务:在固定一段时间后执行相关的函数方法,例如这里表示的是在0秒后执行self.giveHelp这个方法 QTimer.singleShot...
  • UGUI坐标转屏幕坐标

    2019-10-23 18:31:06
    重要接口:RectTransformUtility.ScreenPointToLocalPointInRectangle(); 传入参数:参数1:Rect...参数2:Vector3类型 UI屏幕坐标, 参数3:Camera类型UI相机, 参数4:Vector2类型out参数,转化成为的UI坐标 ...
  • 工具下载: ...在悬浮窗中调用该Activity,可以获取所有界面的坐标信息。 package sc.tool.screen; import sc.tool.component.ActivityComponent; import android.content.Context; import andro...
  • unity 屏幕坐标&世界坐标相互转换

    万次阅读 2018-02-11 21:04:53
    世界坐标转屏幕坐标:Vector3 screenPos = Camera.main.WorldToScreenPoint(pos); 屏幕坐标转世界坐标:Vector3 worldPos = Camera.main.ScreenToWorldPoint(pos);
  • Unity Shader 中获取屏幕坐标

    千次阅读 2019-02-02 10:49:50
    项目中有时会有一些效果需求,如重建片元在世界空间的坐标或者对屏幕指定区域进行颜色操作等,这时就需要获取到片元对应的屏幕坐标(Screen Space Coordinate)。在Unity中有三种方法可以获取到屏幕坐标。 SV_...
  • 游戏世界坐标转化为UGUI屏幕坐标

    千次阅读 2020-03-10 16:20:14
    很多时候,我们需要把游戏场景里面的坐标转化为在ugui中显示的坐标。比如,血条的制作。 代码如下; /// /// 游戏场景里的对象的世界坐标转化到ui界面上的坐标 /// 赋值操作 对象.transform.position =返回值 /...
  • 如题,我用的时cocos2dx-3.3版本,里面添加了3d支持。这里有个问题就半天都没弄明白...怎么把3d世界坐标转换为屏幕坐标呢?在程序里需要用到这样的功能,求解答。。。谢谢。。不是cocos2dx的也麻烦能指导下。。十分感谢
  • Unity屏幕坐标转UI局部坐标

    千次阅读 2019-04-08 11:08:49
    Vector2 position; RectTransformUtility.ScreenPointToLocalPointInRectangle(m_RectTransform, Input.mousePosition, null, out position); https://docs.unity3d.com/ScriptReference/RectTransformU...
1 2 3 4 5 ... 20
收藏数 163,143
精华内容 65,257
关键字:

屏幕坐标