Encomendei algumas folhas de couro das quais gostaria de construir bolas de malabarismo costurando bordas. Estou usando os sólidos platônicos para o formato das bolas.
Posso digitalizar as folhas de couro e gerar um polígono que se aproxime da forma da folha de couro (como você sabe, é pele de animal e não vem em retângulos).
Então, agora, eu gostaria de maximizar o tamanho da minha bola de malabarismo.
No meu exemplo, os polígonos são regulares, mas estou procurando uma solução com polígonos simples.
Qual é o maior fator de escala que posso aplicar aos meus polígonos para que todos caibam dentro da folha?
Estou tentando minimizar o desperdício usando o máximo de material possível.
Obviamente, cortar a rede de poliedros em polígonos individuais aumentará o espaço da combinação possível, mas também diminuirá a qualidade da geometria final, porque há mais costura envolvida e erros acumulados. Mas essa questão não é sobre enumerar as diferentes maneiras de desdobrar um poliedro. Eles podem ser considerados independentemente. Portanto, os polígonos são polígonos simples.
Formalmente:
Entrada:
- : um polígono simples (o alvo)
- : o conjunto de polígonos que quero colocar
- : um gráfico de n polígonos simples - cada nó representa um polígono simples em S e há uma aresta de aresta entre cada par de polígonos que compartilham uma aresta comum
- (uso de material e conectividade)
Saída:
- um fator de escala
- , um subgrafo de G
- : uma localização e um ângulo para cada polígono em V ( G )
- uma medida da qualidade da solução: m = α . f + β . | E ( H ) |
Maximize sujeito a estas condições:
- (1)
- 2)
- para cada polígono em S , S i escalado por um fator f no local L o c ( S i ) está dentro de P (3)
- polígonos em não se sobrepõem (4)
(V (G) são os vértices no gráfico e S é o conjunto de polígonos, mas eles descrevem o mesmo conjunto de objetos. Talvez haja uma maneira mais compacta de fazer isso.)
Explicação das condições:
- (1) Quero que todos os polígonos estejam no layout final
- (2) Algumas conexões podem ser interrompidas se necessário
- (3) (4) a bola é feita de couro
Aqui está o polígono de destino
Aqui está o conjunto de polígonos que quero compactar:
Respostas:
Isso pertence a uma classe de problemas de otimização chamada Problemas de embalagem . No seu caso, em vez de um polígono regular como contêiner, você tem um irregular, mas a ideia permanece a mesma.
Esses problemas de otimização geralmente são difíceis de NP, então não acho que exista uma maneira fácil de obter a solução exata e tentar todas as combinações seria muito caro.
Existem algumas pessoas interessadas neste tipo de problemas; Encontrei este link com alguns problemas específicos de embalagem resolvidos: http://www2.stetson.edu/~efriedma/packing.html
A maneira mais fácil que eu vejo é definir um centro aproximado da chapa de couro, mover o conjunto de polígonos para lá e, escalando para cima e para baixo e verificando se o conjunto de polígonos está ou não dentro do polígono de destino, para obter um fator de escala cada vez mais próximo 'f' para o conjunto de polígonos desejado.
Mas, a menos que você use esse fator para uma produção em larga escala de bolas de malabarismo, provavelmente fazê-lo manualmente seria o bastante.
fonte