Não temos um único desafio em desenhar um cubo tridimensional real, então aqui vai:
Desafio
Sua tarefa é desenhar um cubo girado com perspectiva. Pode estar em uma janela separada ou como uma imagem.
Entrada
Sua entrada é 3 números separados entre 0 e 359,99 ... Eles representam a rotação em torno dos eixos x, ye z em graus.
0 0 0
30 0 40
95 320 12
Resultado
Você pode exibi-lo em uma janela separada ou salvar uma imagem. Você pode usar qualquer tipo de exibição (baseada em vetor, rasterizada etc.).
Edit: ASCII também é permitido, para permitir idiomas de golfe com apenas saída de texto.
A saída para gráficos rasterizados ou ASCII deve ser de pelo menos 50 * 50 (pixels para rasterização, caracteres para ASCII)
Informação adicional
O eixo z positivo aponta para fora da janela, o eixo x é horizontal e o eixo y é vertical. Basicamente, o padrão OpenGL.
As rotações são no sentido anti-horário se você olhar o cubo na direção negativa de um eixo específico, por exemplo, olhando para o eixo y.
A câmera deve estar no eixo z a uma distância razoável do cubo na direção z negativa, o cubo deve estar em (0; 0; 0). O. O cubo também precisa estar totalmente visível e ocupar pelo menos 50% da moldura de desenho. A câmera deve olhar na direção z positiva no cubo.
As rotações do cubo são aplicadas na ordem x-> y-> z.
O cubo é girado em torno de seu centro, não se move.
Para projetar um cubo no espaço 2D, é necessário dividir as coordenadas xey do cubo com a distância paralela ao eixo z entre o ponto e a câmera.
Regras
Bibliotecas de renderização são permitidas, mas os vértices precisam ser definidos no código. Nenhuma classe de modelo de cubo 3d.
Casos de teste
google will tell you the formula.
Não , os desafios devem conter o máximo possível de material e informações necessárias para resolvê-los, incluídos no corpo do post . Eu não deveria ter que pesquisar no Google ou pesquisar na Wikipedia apenas para começar a entender.