Sprawdź, czy obiekt będzie pasować w miejscu przy użyciu rzeczywistości mieszanej
Można użyć formantu Kamera pomiarowa do określenia, czy obiekt o znanej wielkości będzie pasować do konkretnego obszaru. W tym artykule utworzymy aplikację kanwy właśnie do tego celu.
Porada
Kontrolki rzeczywistości mieszanej (MR) pracują najlepiej w dobrze oświetlonym otoczeniu z płaskimi powierzchniami. Śledzenie jest lepsze na urządzeniach obsługujących LIDAR.
Dodawanie minimalnych rozmiarów pól wejściowych do aplikacji kanwy
Najpierw utworzymy pustą aplikację kanwy. Następnie dodamy dla użytkownika sposób wprowadzenia minimalnych rozmiarów, które będzie można testować (czyli najmniejszą przestrzeń, do której obiekt ma pasować).
Wybierz kartę Wstaw. Wstaw i umieść trzy formanty Etykieta tekstu na ekranie.
Zmień właściwość Text etykiet na odpowiednio Minimalna szerokość, Minimalna szerokość i Minimalna wysokość.
Wybierz kartę Wstaw. Wstaw trzy kontrolki Wprowadzanie tekstu i umieść je na prawo od trzech etykiet.
Zmień nazwy formantów wejściowych odpowiednio na minWidth, minDepth i minHeight.
Wybierz wszystkie trzy formanty wprowadzania tekstu. Zmień właściwość grupy Format na Number i ustaw właściwość Default na 1,0.
Dodawanie i powiązanie kontrolki Kamera pomiarowa
Następnie dodamy kontrolkę Kamera pomiarowa, aby umożliwić użytkownikowi mierzenie trójwymiarowej przestrzeni. Miary połączymy miary z tabelą danych w celu ich późniejszego użycia.
Wybierz kartę Wstaw i rozwiń Media.
Wybierz opcję Kamera pomiarowa, aby umieścić formant na ekranie aplikacji. Przeciągnij kontrolkę w pobliże dołu ekranu.
Zmień właściwości kontrolki jak następuje:
Nazwa właściwości Wartość Gdzie Jednostka miary Stopy lub metry Wybierz na karcie Właściwości Typy miary Objętość Wybierz na karcie Właściwości Box draw Włączone Wybierz na karcie Właściwości Elementy Table({label:"Test Volume"}) Wprowadź na karcie Zaawansowane ItemsLabels „etykieta” Wprowadź na karcie Zaawansowane OnMixedRealitySelect Set(testVolume, LookUp(MeasureInMR1.Measurements, Label = "Test Volume")); Wprowadź na karcie Zaawansowane
Właściwości Items, ItemsLabels i OnMixedRealitySelect kontrolki Kamera pomiarowa powinny wyglądać po zakończeniu jak na poniższych przekładach:
Kontrolka w Items zawiera wymiary zmierzonej przestrzeni w tabeli danych o nazwie „Objętość testowa”. Kontrolka OnMixedRealitySelect ustawia zmienną o nazwie „testVolume ”na wartości przechwycone w tabeli „Objętość testowa”.
Wyświetl wyniki
Na koniec dodamy etykiety tekstowe, aby wyświetlić wykonane miary i wynik testu (czyli czy obiekt będzie pasować do mierzonej przestrzeni).
Wybierz kartę Wstaw. Wstaw i umieść cztery formanty Etykieta tekstu na ekranie.
Zmień właściwość Text etykiety w następujący sposób. (Podpowiedź: skopiuj każdą formułę i wklej ją na pasku formuł lub na karcie właściwości Zaawansowane, w zależności od preferencji).
Pierwsza etykieta:
If(IsBlankOrError(testVolume), "No Measurement captured", If(testVolume.Height >= Value(minHeight.Text) && ((testVolume.BoundingWidth >= Value(minWidth.Text) && testVolume.BoundingDepth >= Value(minDepth.Text)) || (testVolume.BoundingWidth >= Value(minDepth.Text) && testVolume.BoundingDepth >= Value(minWidth.Text))), "Fit Test Succeeded", "Fit Test Failed"))
W tej formule tekst etykiety jest ustawiany według tego, czy test zakończył się pomyślnie, czy nie, zależnie od minimalnych rozmiarów wymaganych do przytrzymania obiektu, który ma być dopasowany. Jeśli test nie został uruchomiony, ponieważ nie zostały zarejestrowane żadne miary lub wystąpił błąd, tekst etykiety odzwierciedla ten problem.
Druga etykieta:
Concatenate("Bounding Width: ", Text(testVolume.BoundingWidth))
W tej formule tekst etykiety jest ustawiany na „Szerokość graniczna:”, a po nim rozmiar szerokości pomieszczenia mierzonego.
Trzecia etykieta:
Concatenate("Bounding Depth: ", Text(testVolume.BoundingDepth))
W tej formule tekst etykiety jest ustawiany na „Głębokość graniczna:”, a po nim rozmiar głębokości pomieszczenia mierzonego.
Etykieta czwarta:
Concatenate("Bounding Height: ", Text(testVolume.Height))
W tej formule tekst etykiety jest ustawiany na „Wysokość graniczna:”, a po nim rozmiar wysokości pomieszczenia mierzonego.
Ekran aplikacji powinien teraz wyglądać następująco:
Testowanie aplikacji
Wybierz przycisk podglądu, aby uruchomić aplikację w trybie podglądu. Wybierz Measuring camera, by wypełnij etykiety danymi. Aby sprawdzić, czy powiązania etykiet działają, wprowadź nowe wartości w polach wprowadzania tekstu.
Wartości dla Ograniczającej szerokości i Ograniczającej głębokości mogą być zamienione podczas przeprowadzania testu.
Zapisz i opublikuj aplikację. Otwórz ją na urządzeniu w włączoną rzeczywistością mieszaną, by przetestować, czy obiekt o określonych wymiarach będzie pasować do ograniczeń przechwyconej miary.
Filtrowanie źródła danych
Utworzona przez nas aplikacja testuje pojedynczy zestaw rozmiarów, które są określone przez użytkownika podczas pracy aplikacji. Jednakże można rozszerzyć ją, by przetestować pod kątem jakiegokolwiek źródła danych, stosując formułę jako predykat Filtr.
Załóżmy na przykład, że nasza aplikacja zawiera odwołanie do tabeli Dataverse o nazwie Produkty zawierającej trzy kolumny: Szerokość, Głębokość i Wysokość ( odpowiadające wymiarom każdego produktu). Aby przefiltrować kolekcję, by pokazywała tylko miary, które będą pasować w mierzonej objętości, możemy zastosować następującą formułę.
If(IsBlankOrError(testVolume), Products,
Filter(Products, testVolume.Height >= Height &&
((testVolume.BoundingWidth >= Width && testVolume.BoundingDepth >= Depth) ||
(testVolume.BoundingWidth >= Depth && testVolume.BoundingDepth >= Width))))
Zobacz także
Uwaga
Czy możesz poinformować nas o preferencjach dotyczących języka dokumentacji? Wypełnij krótką ankietę. (zauważ, że ta ankieta jest po angielsku)
Ankieta zajmie około siedmiu minut. Nie są zbierane żadne dane osobowe (oświadczenie o ochronie prywatności).