PoC | TryAngels (R&D)

Resumo Executivo

R&D

PoC

Segunda Edição

Terceira Edição

Referências

[Código fonte incluso]

↑ Topo ↑

en

PoC – Proof of Concept

Segunda Edição

Com esta nova versão a solução agora enumera todos os triângulos e exibe os resultados tanto em uma caixa de texto (relatório) como em um novo controle TreeView – de onde você pode selecionar qualquer item e ver as suas bordas e destaque na área gráfica.

Eu revisei o código (que agora está muito mais enxuto) para facilitar a leitura e o entendimento, enfatizando os requerimentos e objetivos do concurso. Para tanto, eu eliminei todos os trechos relacionados a gateways, factories, managers e testes de performance.

Como resultado, agora as camadas lógicas e o fluxo de dados podem ser assim representados:

layers

Figure 1. Fluxo dos dados pelas camadas lógicas da solução

Como você pode perceber (executando e explorando o executável da solução), eu também consegui manter a otimização tanto a velocidade de processamento como o uso da memória.

A nova interface de usuário ficou assim:

ui-stats

Figure 2. TryAngels 0.0.2.0 – Main Form

O TabControl (à direita) foi alterado para refletir as alterações de arquitetura; e o TextBox do relatório agora se posiciona abaixo da área gráfica, na porção central da tela.

Uma nova TreeView foi adicionada à esquerda da tela. A mesma é atualizada – juntamente com os controles centrais – quando o usuário clica no botão Execute ou altera o valor do controle NumericUpDown. Ela também permite ao usuário explorar e destacar quaisquer dos triângulos internos na imagem apresentada na área gráfica.

A próxima figura apresenta um exemplo de seu uso:

ui-perf

Figure 3. TryAngels 0.0.2.0 – Selecionando um item da TreeView

E aqui está um outro exemplo, com uma imagem um pouco mais complexa:

ui-select2

Figure 4. TryAngels 0.0.2.0 – Um triângulo de lado 35 com um triângulo interno em destaque.

Note que um triângulo equilátero de lado 35 (aqui com 12 pixels, cada um) tem um total de 11.493 triângulos internos visíveis e identificáveis; e que você pode destacar cada um dos mesmos a partir da TreeView.

Note também que todos os triângulos internos estão individualmente identificados, devidamente detalhados e sumarizados, e apropriadamente contabilizados.

E finalmente, note que a solução proporciona toda esta funcionalidade respeitando os requerimentos de otimização de performance e uso da mémória ditados pelo concurso; implementando um algoritmo que “garante completude, e evita duplicação” de qualquer espécie.

A propósito:

clipNote

Conforme solicitação do Sr.Francesco Abbruzzese, eu ocultei algumas partes do código fonte a fim de preservar a continuidade do concurso.

Tais partes serão disponibilizadas na próxima versão (0.0.2.1) da solução, logo que possível.

Conclusão

Com essa nova versão, a solução satisfaz e contempla todos os requerimentos propostos pelo concurso.

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: