安卓编程坐标系的一个问题

简介: 安卓编程坐标系的一个问题

From: Wang, Jerry


Sent: Thursday, August 16, 2012 10:51 AM

Subject: reason why I cannot judge whether the current click resides within icon or outside it


我解释一下昨天说的为什么现在不能判断当有单击事件的时候,当前单击的位置是否落在六个图标任意一个之内,还是之外。


我们肉眼看到的椭圆(上面那个),是通过六个点的圆心角经过三角函数计算出来的3D坐标,来模拟3D效果。(把X,Y坐标用三角函数处理,产生弧度),再加上Z产生纵深效果。


当你单击的时候,event handler传进来的x和y是基于设备坐标系(红色的X’和Y’)的绝对坐标。因此,每次一个单击事件之后,要计算当前单击位置离哪一个点最近,必须要得到6个点在设备坐标系的绝对坐标。


图中的6条虚线就代表了从3D坐标转换到2D设备坐标系坐标的映射逻辑。


现在最主要的issue:


3D坐标的计算逻辑:( 注意3D的y是depend到Z的)image.png在映射到2D坐标时,令新的2D坐标为(x’, y’ )


X’ = f(x)


Y’ = g(y)


现在的问题是我们无法精确地determine函数f和g, 因为3D的x,y,z都是根据圆心角算出来的,而不是x’, y’.所以我现在只能用一种比较粗略的方式来近似模拟出f和g,有一定的误差。


因此,这些通过近似计算出来的x’和y’只能用来比较六个点到底哪个离点击坐标最近,而不能用来精确计算点击坐标是否落在图标的矩形范围内。换句话说,点击事件发生后,我没办法知道是否点在某个图标上,还是点在空白处。我只能求出点击坐标离近似计算出来的六个点的2D坐标的距离,然后对这6个距离进行排序,取出最小值返回。image.png


相关文章
|
1月前
|
存储 Python
GDAL一行代码将投影坐标系转为地理坐标系
【2月更文挑战第24天】本文介绍基于gdal模块,在命令行中通过GDAL命令的方式,将栅格遥感影像的投影坐标系转为地理坐标系的方法~
GDAL一行代码将投影坐标系转为地理坐标系
|
4月前
ArcGIS中ArcMap为不含坐标系的图层添加地理坐标系或投影坐标系
ArcGIS中ArcMap为不含坐标系的图层添加地理坐标系或投影坐标系
|
4月前
|
定位技术
ArcGIS矢量图层投影与地理坐标系转为投影坐标系——ArcMap
ArcGIS矢量图层投影与地理坐标系转为投影坐标系——ArcMap
|
定位技术
ArcGIS投影:地理坐标系转为投影坐标系
本文介绍在ArcMap软件中,对矢量图层或栅格图层进行投影(即将地理坐标系转为投影坐标系)的原理与操作方法~
846 1
ArcGIS投影:地理坐标系转为投影坐标系
|
计算机视觉
五、OpenCV绘制线、矩形、圆等基本几何形状
通过javaOpenCV中的Imgproc函数进行简单几何图形的绘制
99 0
五、OpenCV绘制线、矩形、圆等基本几何形状
|
前端开发 数据可视化
Canvas——坐标系和矩阵的理解
前言 最近一直在寻找可视化文章发现没有合适的,恰好有个粉丝问了坐标系就和大家讲一下, 文字不多,内容比较简单,看完应该就能理解canvas的坐标系和getTransform 的 6 个参数什么意思哈, 后面还有一篇「Rbush」正在奋笔疾书✍️中,关于空间中如何快速搜索🔍百万或者是数十万个点的,敬请期待哈! 坐标系 canvas中的坐标是从左上角开始的,x轴沿着水平方向(按像素)向右延伸,y轴沿垂直方向向下延伸。左上角坐标为x=0,y=0的点称作原点。在默认坐标系中,每一个点的坐标都是直接映射到一个CSS像素上。 但是如果图像的每次绘制都参考一个固定点将缺少灵活性,于是在canvas中引
Canvas——坐标系和矩阵的理解
|
算法
唯一坐标转换问题
现在有一个二维坐标组成的数组,例如 [[0,7],[8,10],[12,19],[13,15],[2,9],[19,22],[25,27],[30,33]]; 这些坐标可以按照以下规则进行转换,例如: 1.
1113 0