安瑞范文网

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

|来源:网友投稿

 安卓编程坐标系的一个问题 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 的)

 float x = -(float)(diameter/2*Math.sin(angleOffset));

  float z = diameter/2 * (1.0f - (float)Math.cos(angleOffset));

  float y = - getHeight()/2 + (float) (z * Math.sin(mTheta));

 在映射到 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 个距离进行排序,取出最小值返回。

推荐访问:坐标系 一个问题 编程

热门推荐
  • 中央八项规定内容全文

    中央八项规定内容全文中央八项规定内容全文关于改进工作作风、密切联系群众的八项规定一、要改进调查研究,到基层调研要深入了解真实情况,总结经验、研究问题、解决困难、指导工作,向群众学习、向实践学习,多同群

  • 中国共产党百年四大时

    吴庆军陈红梅张霞[摘要]党的百年庆祝大会上,习近平总书记总结了四个伟大成就,意味着中央已经将党的一百

  • 政治理论学习不够深入

    政治理论学习不够深入整改措施方案三篇政治理论学习不够深入整改措施方案1通过认真回顾自已近年来在工作、生活中的表现,切实感觉到与要求还有一定差距,有必要进行认真查摆自己存在的实际问题和不足,并剖析根源,

  • 全球安全倡议的核心要

    王玏刘军〔提  要〕全球安全倡议是破解人类安全难题、维护世界和平安宁的中国智慧和中国方案,其所包含的

  • 推进全面从严治党工作

    推进全面从严治党工作措施为全面贯彻党的十九大和十九届二中、三中、四中全会精神,深入学习贯彻习近平新时代中国特色社会主义思想和党中央治国理政新理念新思想新战略,认真落实省委X届X次全会和市委X届X次全会

  • 意识形态工作责任制实

    意识形态工作责任制实施细则第一章总则第一条为进一步加强和改进意识形态工作,落实党要管党意识形态原则,明确党组领导班子、领导干部的意识形态工作责任,结合实际,制定本细则。第二条意识形态工作是党的一项极端

  • 中华人民共和国建筑法

    中华人民共和国主席令第四十六号全国人民代表大会常务委员会关于修改《中华人民共和国建筑法》的决定已由中华人民共和国第十一届全国人民代表大会常务委员会第二十次会议于011年4月日通过,现予公布,自011年

  • 2023年度支部委员会会

    支部委员会会议记录1  会议时间:年月日参加人员:基础部全体党员  主持人:xxx记录人:xxx  会议内容:  党支部活动记录  时间:年月日出席人数:缺席人员:  主持人:老师)记录人:  活动