2017-01-24 23 views
5

tôi sử dụng vuforia với Dominoes mẫutay cầm chạm vào đối tượng 3d Dominoes Vuforia

Nói cho tôi biết là xin gì domino-> pickingTransform trong

Vuforia::Vec3F intersection, lineStart, lineEnd; 
    projectScreenPointToPlane(Vuforia::Vec2F(touch1.tapX, touch1.tapY), Vuforia::Vec3F(0, 0, 0), Vuforia::Vec3F(0, 0, 1), intersection, lineStart, lineEnd); 

    Domino* domino; 
    Domino* selected = NULL; 
    float dist; 

    // For each domino, check for intersection with our picking line 
    for (int i = 0; i < dominoCount; i++) { 
     domino = &dominoArray[i]; 
     bool intersection = checkIntersectionLine(domino->pickingTransform, lineStart, lineEnd); 
     if (intersection) { 
      selected = domino; 
      selectedDominoIndex = i; 
      break; 
     } 
    } 

tôi thay domino-> pickingTransform với matrix44F (modelViewMatrix)

intersection = SampleMath.getPointToPlaneIntersection(
       SampleMath.Matrix44FInverse(vuforiaAppSession.getProjectionMatrix()), 
       matrix44F, metrics.widthPixels, metrics.heightPixels, 
       new Vec2F(x, y), new Vec3F(0, 0, 0), new Vec3F(0, 0, 1)); 
     lineStart = SampleMath.getPointToPlaneLineStart(
       SampleMath.Matrix44FInverse(vuforiaAppSession.getProjectionMatrix()), 
       matrix44F, metrics.widthPixels, metrics.heightPixels, 
       new Vec2F(x, y), new Vec3F(0, 0, 0), new Vec3F(0, 0, 1)); 
     lineEnd = SampleMath.getPointToPlaneLineEnd(
       SampleMath.Matrix44FInverse(vuforiaAppSession.getProjectionMatrix()), 
       matrix44F, metrics.widthPixels, metrics.heightPixels, 
       new Vec2F(x, y), new Vec3F(0, 0, 0), new Vec3F(0, 0, 1)); 

     boolean bool = checkIntersectionLine(matrix44F, lineStart, lineEnd); 

nhưng hiện tại ứng dụng không phát hiện cảm ứng trên 3d

Tôi nghĩ rằng domino-> pickingTransform là modelViewMatrix sau khi quay, phải không?

ứng dụng của tôi havent bất kỳ luân chuyển và tôi cần phải phát hiện chạm trong cùng một trạng thái của đối tượng

Trả lời

3

domino->pickingTransform là khá nhiều ma trận cuối cùng đã được rút ra cho từng đối tượng domino. Công việc mẫu dominos theo cách cho mỗi đối tượng (domino), ứng dụng kiểm tra điểm chiếu của màn hình cảm ứng và xem liệu nó có giao nhau với ma trận của đối tượng hay không. Ma trận chọn không giống hệt nhau, vì bạn muốn làm cho cảm ứng nhạy hơn, vì vậy bạn làm cho nó rộng hơn một chút so với ma trận vẽ.

Thật khó để hiểu chính xác những gì bạn đã thay thế nó, nhưng nó phải là ma trận khá giống nhau (4X4, tất nhiên) với một trong đó bạn đang vẽ từng đối tượng của bạn.

Các vấn đề liên quan