2017-01-31 8 views
12

Chcę, aby klikalny komórkę palety w Vuforia (bez jedności) przez kranu na ekranie: enter image description hereJak wykonać kliknięcia na części modelu w Vuforii (bez Unity)?

znalazłem przykład Domino z podobną funkcjonalność i zrobić:

  • utworzyć obiekt tablicy i mnożenie obiektów

  • wywołanie funkcji isTapOnSetColor z parametrem x, y (współrzędne kliknięcia) w odczycie i uzyskanie współrzędnych,

  • dne jest poprawna, ale uzyskać identyfikator/nazwa części obiektów jest źle

myślę problem z tej linii:

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

W przykładzie Domino to było:

bool intersection = checkIntersectionLine(domino->pickingTransform, lineStart, lineEnd); 

Ale nie wiem, co robi domino->pickingTransform i wklej zamiast tego modelu liniiViewMatrix (Tool.convertPose2GLMatrix (tra ckableResult.getPose()) getData())

Pełny kod z mojej funkcji dotykowego. http://pastebin.com/My4CkxHa

możesz mi pomóc, aby kliknięcia lub może być w inny sposób (nie jeden), aby to zrobić?

+1

"matrix44F" uzyskuje wartość z "modelViewMatrix_colors", jak widziałem. Jakie są wartości, które tam przechowujesz? spróbuj narysować prostokąt prostokąta za pomocą tej macierzy, aby zobaczyć jego wymiary i położenie. Jeśli nie jest prawidłowo narysowany w komórce, to jest to rzeczywiście twój problem. – yakobom

+0

@yakobom To jest modelViewMatrixKeyframe dla każdej komórki http://pastebin.com/TzqAabMb – skywind

Odpowiedz

3

Zasadniczo, domino->pickingTransform jest prawie ostateczną macierzą, która jest rysowana dla każdego obiektu domina. Próbka domina działa w taki sposób, że dla każdego obiektu (domino) aplikacja sprawdza rzutowany punkt na ekranie i widzi, czy przecina matrycę obiektu. Macierz kompletacji nie jest dokładnie taka sama, ponieważ chcesz sprawić, by była bardziej responsywna, więc uczynisz ją nieco szerszą niż macierz rysunku.

Powiedziałeś, że otrzymujesz nieprawidłowy identyfikator, ale pytanie brzmi - czy zawsze jest to ten sam identyfikator dla różnych komórek? Jeśli nie, prawdopodobnie jest to niewielki błąd obliczeniowy wprowadzony w przekształceniach macierzy. Proponuję wizualne debugowanie - dodaj graficzne wskazanie wykrytego identyfikatora, abyś mógł zobaczyć, jaką komórkę kliknęła aplikacja. Powinno to pomóc w postępie w kierunku rozwiązania.

Powiązane problemy