bom pessoal vamos agora para parte de terceir entrega tá nessa terceira entrega pessoal a precisa fazer simplesmente o seguinte nessa fase os grupos implementar transformações afins elas são definidas da seguinte forma para isso o grupo precisa desenvolver uma maneira de construir matrizes de FL doubles que podem ser a por exemplo Além disso Dev ser possível aplicar matrizes pontos e vores ação para mostrar o efeito da transformação vocês podem por exemplo fazer com que o programa renderize duas imagens umas antes da aplicação de uma transformação AF fim e outra Depois dessa transformação a fim tá então
antes de qualquer coisa vamos primeiro dar uma olhadinha no que é uma transformação afim uma transformação afim pessoal de um objeto e aqui eu vou chamar esse objeto de sei lá vamos imaginar que esse nosso objeto deixa eu trocar C aqui botar um pito uma transformação afim em um objeto x esse objeto pode ser um vetor esse objeto pode ser um ponto tá basicamente uma das coisas que a gente vai fazer é a de x mais b ah essa parte aqui pessoal a gente vai chamar isso aqui da parte de a parte linear da nossa
transformação afim tá então a esse é uma matriz tá uma matriz m por n que a gente vai aplicar a esse nosso objeto x aqui E esse aqui é simplesmente a nossa translação no espaço tá então é como se a gente conseguisse mover aquele ponto aquele objeto no espaço tá então Imagine que sei lá você tem algo centrado na origem você faz alguma coisa e agora você quer mover isso para algum ponto no espaço e aí você pode simplesmente utilizar a esse B aí OK então vamos lá agora entender como é que as coisas funcionam
e em alguns exemplos que a gente pode usar pô tem vários imagina que você tem sei lá ah fazer um exemplo legalzinho aqui você tem um gato tá um que são vários vários pontos aqui e aí uma transformação linear que você pode fazer simplesmente a reflexão Então você vai ter o gato agora que tá refletido por outro lado uma coisa imagina que você tem um quadrado e aí você pode fazer um cisalhamento certo ah sei lá você tem um quadrado também e outra coisa que você pode fazer é uma rotação tá então são várias opções
que a gente pode fazer aí e qual é a ideia aqui pessoal a ideia aqui é que vocês pode usar qualquer tipo de transformação afim tá então basicamente eu recomendo que vocês façam um simples código mesmo é em que vocês peguem alguns faça uma matriz de essa Matriz é muito importante porque é a matriz que você vai utilizar para fazer a multiplicação né Então imagina que você tem aqui uma informação que tem M coordenadas certo e aí você tem precisa ter uma matriz aqui tem M colunas Então você precisa multiar para uma matriz que tinha
M linhas e n colunas Tá e isso aí vai gerar pra gente um outro objeto um vetor por exemplo de n colunas Então essa Matriz aqui é a matriz da transformada tá então você vai pegar isso aqui Vai Multiplicar e vai gerar esse resultado aqui que você vai somar mais aquele D aquele B certo que eu falei que é para você dar um certo tipo de deslocamento quais são os tipos de transformadas afim ah antes de falar quais são os tipos de transformadas assim que eu gosto né vamos só dar como é que a gente
vai utilizar isso então você pode por exemplo pegar uma triangular M que você fez vamos dizer que você definiu bem direitinho lá sua triangular Mech ela é definida pelos pontos tá então você tem vários pontos lá da sua triangular Mech E você só pode simplesmente pegar cada ponto dessa triângul Mech aplicar a transformada E aí depois que você aplicar a transformada você vai ter um outro conjunto de pontos e agora como a definição dos triângulos são a mesma não muda então você vai ter agora sua nova seu novo objeto sua nova figura renderizada de uma
forma diferente tá então para fazer essa transformação eí pra gente dar uma visualizada primeiro gerem uma imagem com esses pontos aqui se você for usar triangular Mech por exemplo e depois gera com esse com essa resultado aqui tá utilizando uma matriz de flo Double V é melhor usar Double Porque tem uma precisão maior tá a qual a transformada que eu gosto bastante ã tem um negócio chamado coordenadas de oiler que serve muito para rotação pessoal então tem aqui até uns exemplinho mesmo e ó ele faz esse tipo de roda ele gira aqui em relação ao
Z depois ele gira em relação ao X se eu não me engano eu Gira em relação ao Z depois Gira em relação ao x se eu não me engano certo e depois Gira em relação ao Z de novo então você consegue fazer essas coisas aqui esse tipo de rotação sabe então essa aqui é um tipo de transformação linear porque a matriz dela é muito simples Ó você vai receber a entrada aqui e a gente tem esse conjunto de Matriz aqui ó que ele tá aplicando a Matriz Três vezes né porque ele faz três tipos de
rotação então ele primeiro multiplica aqui ó por um dato Gama que você que é dado Depois tem um beta e depois tem o alfa tá e quando você multiplica por isso aqui definindo exatamente quem é o gama quem é o alfa e quem é o Beta você consegue fazer uma rotação bem legal aqui da da imagem tá isso aqui é um tipo de transformação linear então aqui por exemplo se você aqui isso aqui é legal olha esse exemplo aqui são exempl de transformação linear tá aqui é mais ou menos um exemplo primeiro você gira no
z tá depois você vai girar no x e depois você vai girar no z de novo no no caso no novo Z né E vai dar esse efeito aqui ah antes só um comentário aqui não pega todos os tipos de rotações Tá mas é um exemplo bem legalzinho assim se você quiser então isso é tipo muito simples você pega um ponto aqui ó pegou o ponto multiplicou por essas três matrizes Ou seja você fez três transformados lineares e pô tá lá ou você poderia também pegar esses três três matrizes aqui multiplicar ela ent já que
elas são matrizes quadradas né 3 por 3 e daria uma matriz só no final tá bom então esse aqui é o nosso é um tipo de transformação linear é um exemplo do que vocês podem utilizar aí no projeto de vocês Y