을 조정 :OPEN GL ES 1.0. 세계는 화면 좌표 나는이 할 계획 차원 따기 위해
저리 터치 좌표 (x, y)
-Choose 정점 내 모델의 버텍스 버퍼 (XM, YM, ZM)에서 . 화면 좌표에 대한 내 자신의 손 (XM, YM, ZM)에 의해
- 그럼 프로젝트
(XM, YM, ZM) ---> (XP, YP, ...)
하고 확인 매치 (실시 예 SQRT 대 ((X - xP를)^2 + (Y - YP)^2) < SOME_EPS) I는 mProjectionMatrix에 절두체 매트릭스 저장된 투영
:
gl.glFrustumf(-ratio/q, ratio/q, -1/q, 1/q, 1, 25);
Matrix.frustumM(mProjectionMatrix, 0, -ratio/q, ratio/q, -1/q, 1/q, 1, 25);
, 및 mAccRotation에서 좌표를 변환 저장 :
gl.glLoadMatrixf(mAccRotation, 0);
그래서 테스트 기능이로 바뀌 :
public void touch(float x, float y){
float TESTIFY_VERT[] = {0.0f, 0.0f, -1.5f, 1.0f}; //first vert in L0
float Resulted[] = new float[4];
float rMatrix[] = new float[16];
Matrix.multiplyMM(rMatrix, 0, mProjectionMatrix, 0, mAccRotation, 0);
Matrix.multiplyMV(Resulted, 0, rMatrix, 0, TESTIFY_VERT, 0);
}
(TESTIFY_VERT 내 모델들 중 하나입니다) 그래서 내가 사용하려고 결과 : [0] (xP, yP)
으로 결과가 (결과 [0] +1) * (너비/2.0f), (결과 * 1) * (높이/2.0f)
그리고 이것은 작동하지 않습니다. 왜? 조언을 제공 할 수 있습니까?
추신 : 나는 이러한 모든 질문을 보았으며 내 문제에 답하지 않습니다.
, I는 A의 고투 비슷한 문제. 고마워요. 오늘 하루 구 했어요. :) – redobot