openGL es2.0 render坐标(三维) 转换为 屏幕坐标(二维)

来源:互联网 发布:数据库导论第五版答案 编辑:程序博客网 时间:2024/05/21 13:54

在点击屏幕时,onTouch方法中的x,y,是整个平面的坐标。此类是将按钮在三维中的位置转换为屏幕二维坐标上,目的是方便点击按钮范围的确定。此类返回一个四维数组,分别代表按钮的左右上下的界限。

<pre name="code" class="java">package com.gzdxid.utils;import static com.gzdxid.constants.Constants.*;public class ConfigButtonUtil {//在三维空间中,坐标原点在屏幕中心、右边为x轴正向、上边为y轴正向,屏幕外面是z轴正向//在二维空间中,坐标原点在屏幕左上角,右边为x轴正方向,下边为y轴正方向public static float[] getArea(float width,float height,float xOffset,float yOffset){//width:按钮的宽度  height:按钮的高度   //xOffset:x轴方向的移动,相对界面中心  yOffset:y轴方向移动,相对界面中心//RATIO:onSurfaceChange中width/height(屏幕宽高比)//    SCREEN_WIDTH、SCREEN_HEIGHT是平面宽度和高度//设置透视为(-RATIO,RATIO,-1,1,0,200)其中0、200可变return new float[]{(float)(RATIO+xOffset-width/2)/(2*RATIO)*SCREEN_WIDTH,(float)(RATIO+xOffset+width/2)/(2*RATIO)*SCREEN_WIDTH,(float)(1-yOffset-height/2)/2*SCREEN_HEIGHT,(float)(1-yOffset+height/2)/2*SCREEN_HEIGHT};}}



0 0
原创粉丝点击