Compartilhar via


Testar se um objeto caberá em um espaço usando realidade misturada

Você pode usar o controle Câmera de medição para determinar se um objeto de tamanho conhecido caberá em um determinado espaço. Neste artigo, criaremos um aplicativo de tela para fazer exatamente isso.

Dica

Os controles de MR (realidade misturada) funcionam melhor em ambientes bem iluminados com superfícies de textura plana. O acompanhamento é melhor em dispositivos habilitados para LIDAR.

Adicionar campos de entrada de dimensões mínimas a um aplicativo de tela

Primeiramente, criaremos um aplicativo de tela em branco. Em seguida, adicionaremos uma maneira de o usuário inserir as dimensões mínimas para teste (ou seja, o menor espaço em que queremos que o objeto caiba).

  1. Crie um aplicativo de tela em branco.

  2. Selecione a guia Inserir. Insira e coloque três controles Rótulo do texto na tela.

  3. Altere a propriedade Text dos rótulos para Largura Mínima, Profundidade Mínima e Altura mínima, respectivamente.

    Uma captura de tela de um rótulo de texto em construção no Microsoft Power Apps Studio, mostrado ao lado de suas propriedades.

  4. Selecione a guia Inserir. Insira três controles Entrada de texto e coloque-os à direita dos três rótulos.

  5. Renomeie os controles Entrada de texto para minWidth, minDepth e minHeight, respectivamente.

    Uma captura de tela de um controle Entrada de texto em construção no Microsoft Power Apps Studio, mostrado ao lado de suas propriedades.

  6. Selecione os três controles Entrada de texto. Altere a propriedade Format para Número e defina a propriedade Default para 1.0.

    Uma captura de tela de três controles Entrada de texto em construção no Microsoft Power Apps Studio, mostrado ao lado das propriedades do grupo selecionado.

Adicionar e associar o controle Câmera de medição

A seguir, adicionaremos o controle Câmera de medição para permitir ao usuário medir um espaço tridimensional. Associaremos as medidas a uma tabela de dados para uso posterior.

  1. Selecione a guia Inserir e expanda Mídia.

  2. Selecione Câmera de medição para colocar o controle na tela do aplicativo. Arraste o controle perto da parte inferior da tela.

  3. Altere as propriedades do controle da seguinte maneira:

    Nome da propriedade Valor Onde
    Unidade de medida Pés ou Metros Selecione na guia Propriedades
    Tipo de medida Volume Selecione na guia Propriedades
    Desenho da caixa Ativado Selecione na guia Propriedades
    Itens Table({label:"Test Volume"}) Entre na guia Avançado
    ItemsLabels "rótulo" Entre na guia Avançado
    OnMixedRealitySelect Set(testVolume, LookUp(MeasureInMR1.Measurements, Label = "Test Volume")); Entre na guia Avançado

Quando as propriedades Items, ItemsRótulos e OnMixedRealitySelect do controle Câmera de medição estiverem definidas, elas deverão estar parecidas com os exemplos a seguir:

Uma captura de tela de um controle Measure in 3D em construção no Microsoft Power Apps Studio, mostrado ao lado de suas propriedades Itens e ItemsRótulos.

Uma captura de tela de um controle Measure in 3D em construção no Microsoft Power Apps Studio, mostrado ao lado de sua propriedade OnMixedRealitySelect.

A fórmula em Itens captura as dimensões do espaço medido em uma tabela de dados chamada "Test Volume". A fórmula em OnMixedRealitySelect define uma variável chamada "testVolume" para os valores capturados na tabela "Test Volume".

Exibir os resultados

Por fim, adicionaremos rótulos de texto para exibir as medidas que foram tiradas e o resultado do teste (ou seja, se o objeto caberá no espaço medido).

  1. Selecione a guia Inserir. Insira e coloque quatro controles Rótulo do texto na tela.

  2. Altere a propriedade Text dos controles de rótulo como se segue. (Dica: copie cada fórmula e cole-a na barra de fórmulas ou na guia de propriedades Avançado, o que você preferir.)

    • Primeiro rótulo:

          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"))
      

      Essa fórmula define o texto do rótulo de acordo com o sucesso ou a falha do teste, com base nas dimensões mínimas necessárias para conter o objeto que queremos encaixar. Se o teste não foi executado, ou porque nenhuma medição foi capturada, ou devido a um erro, o texto do rótulo refletirá isso.

      Uma captura de tela de um controle de rótulo de texto em construção no Microsoft Power Apps Studio, mostrado com sua propriedade Text na barra de fórmulas e guia de propriedades Avançado.

    • Segundo rótulo:

          Concatenate("Bounding Width: ", Text(testVolume.BoundingWidth))
      

      Essa fórmula define o texto do rótulo como "Largura delimitadora:" seguido pela dimensão da largura do espaço medido.

    • Terceiro rótulo:

          Concatenate("Bounding Depth: ", Text(testVolume.BoundingDepth))
      

      Essa fórmula define o texto do rótulo como "Profundidade delimitadora:" seguido pela dimensão da profundidade do espaço medido.

    • Quarto rótulo:

          Concatenate("Bounding Height: ", Text(testVolume.Height))
      

      Essa fórmula define o texto do rótulo como "Altura delimitadora:" seguido pela dimensão da altura do espaço medido.

A tela do aplicativo deverá ter esta aparência:

Uma captura da tela do aplicativo final.

Testar o aplicativo

Selecione o botão de visualização para executar o aplicativo no modo de visualização. Selecione Câmera de medição para preencher os rótulos com dados. Para verificar se as associações de rótulo estão funcionando, insira novos valores nos campos de entrada de texto.

Uma captura da tela do aplicativo no modo de visualização após a inserção de novas dimensões mínimas.

Os valores para Largura Delimitadora e Profundidade Delimitadora podem ser trocados durante a realização do teste.

Salve e publique seu aplicativo. Abra-o em um dispositivo habilitado para realidade misturada a fim de testar se um objeto com as dimensões especificadas caberá dentro dos limites de qualquer medida capturada.

Filtrando uma fonte de dados

O aplicativo que criamos testa um único conjunto de dimensões que são especificadas pelo usuário quando o aplicativo é executado. No entanto, você pode estendê-lo para testar em qualquer fonte de dados ao aplicar a fórmula como um predicado Filter.

Por exemplo, digamos que o nosso aplicativo contenha uma referência a uma tabela do Dataverse chamada Produtos que inclui três colunas: Largura, Profundidade e Altura (correspondendo às dimensões de cada produto). Para filtrar a coleção de modo a mostrar somente as medidas que caberiam em um volume medido, podemos aplicar a fórmula a seguir.

    If(IsBlankOrError(testVolume), Products,
    Filter(Products, testVolume.Height >= Height &&
        ((testVolume.BoundingWidth >= Width && testVolume.BoundingDepth >= Depth) ||
        (testVolume.BoundingWidth >= Depth && testVolume.BoundingDepth >= Width))))

Confira também

Observação

Você pode nos falar mais sobre suas preferências de idioma para documentação? Faça uma pesquisa rápida. (Observe que esta pesquisa está em inglês)

A pesquisa levará cerca de sete minutos. Nenhum dado pessoal é coletado (política de privacidade).