Transcrições
1. Introdução: Olá, todo mundo. Meu nome é Hadeel, e isso está de volta ao básico. Seu guia para processar Internet separadamente neste curso aprenderá os prós e contras da codificação e processamento, e teremos muitos exemplos para praticar os fundamentos de qualquer criação de arte genital . Quando comecei a codificação criativa, olhei para todos que são muito mais avançados e sempre se perguntaram como poderiam fazê-lo. Eu passo dias tentando aprender, mas o que eu não percebi é que eu não compreendi completamente o básico. É por isso que te trago esta aula. À medida que crio aulas de arte mais generativas, quero ter certeza de que há um que professores os blocos de construção, bem como mostrar o seu recurso é uma inspiração para ter um repositório abrangente de informações. Assim, nesta classe vai primeiro passar pelo ey de processamento para entender como ele funciona,
vamos aprender como programar e processar a partir de
programação orientada a objetos variáveis para que possamos mais tarde mergulhar nos conceitos básicos de design de arte generativa com muitos exemplos ajudando você a descobrir as diferentes técnicas. Artistas genitais que empregam seu trabalho bem depois passam pelas várias maneiras de salvar e exportar seu trabalho com base no tipo de projeto que você está criando. E por último, mas não menos importante, vou compartilhar com você. Alguns recursos são uma inspiração que me ajudou a aprender e criar obras de arte mais generativas. Agora vai parar de arrastar a central, mais longe e vamos começar a aprender.
2. Capítulo 1: interface interface: Antes de começarmos, qualquer coisa terá que sair processando, é
claro. Ok, Então antes de baixar o processamento ou apenas queremos mostrar algumas coisas que você pode fazer agora , a primeira coisa que você precisa saber sobre o site ou qualquer linguagem de programação quando você está começando é a referência Isca. Ele sempre tem que procurar a documentação porque a documentação mostrará tudo o que você precisa saber sobre esse programa e como usá-lo. Digamos que eu quero criar um círculo. Então eu vou para Judy Primitives dentro da forma, e você pode ver o círculo aqui para que ele possa entrar em círculo. Eu posso ver um exemplo que ele pode usar. Às vezes ele tem, hum às vezes ele mostra como este exemplo vai parecer como às vezes você vai ter que usar o exemplo dentro do processamento apenas para ver como ele parece. E então ele vai lhe dar uma descrição e, ah, os parâmetros ou a sintaxe de como usá-lo, e então os parâmetros que você vai usar dentro dele e o que ele retorna. Se fossem tendências, qualquer coisa e, em seguida, ele vai mostrar as funções ou propriedades relacionadas, hum, dessa forma ou função ou propriedade que você está entrando. E se você for para a página de referência, você pode ver que há muitas coisas que você pode aprender sobre o processamento. Eu uso uma língua muito, muito pequena de toda esta página de documentação. E pode fazer muito. Então imagine o que você pode fazer. Você pode usar tudo isso. Há também uma seção de tutorial, mas eu vou para sempre que eu estou preso algo que eu não consigo lembrar como fazê-lo ou se eu quero direcionar alguém para aprender sobre processamento que eu iria apenas direcioná-los aqui porque há tantos vídeos e artigos e como criar certas coisas. Então, há ótimos tutoriais aqui, e eles têm tópicos diferentes. Ou se eu entrar em imagens e pixels, você pode ver que é um artigo ou oposição onde você pode ver muitos exemplos e explica , Ah, um monte de coisas que você pode usar com imagens e pixels. Então, é muito útil se você precisar aprender um pouco mais do que os cursos que ele pode que você encontrar on-line como o meu curso. E, em seguida, há também a seção de exemplo na seção Exemplo. Você pode ver exemplos relacionados aos diferentes tópicos no processamento. Então vamos dizer cor e eu vou para Hugh. Você pode ver um exemplo de como você usaria Hugh, por exemplo. Então, para
isso, ele está realmente mudando a tonalidade como eles vão para cima e para baixo na tela. E então ele vai criar retângulos enquanto eu vou para o lado direito do meu lado. Portanto, estes são muito úteis para você ter uma sensação de tudo no processamento que você pode usar. Não, também
há livros aqui que você pode ler, você pode comprar e esperar. É É para principalmente para iniciantes, mas alguns deles é bastante útil, e eu sou um dos meus favoritos é a natureza do código. Na
verdade, verdade, porque é tudo sobre simulações, e eu adoro simulações, e este livro está disponível online gratuitamente. Se você acessar o site, há outro lado esquerdo, como processamento de aprendizagem. Tem um monte de grandes exemplos. Alguns desses livros, como Tes dois, são de Casey Reyes, que é um dos meus artistas favoritos. Bem, então vamos para a página de download. Ok? Agora, na página de download, você vai apenas escolher o seu sistema, e ele vai baixá-lo para você. Eu não vou olhar agora, porque porque ele realmente vai ter que baixá-lo. Ok, então vamos para o processamento depois que ele baixou para verificar o você I Ok, vamos ver o Você, eu digo que pode entender o que eu estou fazendo quando eu executar o programa ou parar o programa. Ou se quisermos plantar algo para o Cônsul, você já sabe onde está tudo. Então a primeira coisa que eu quero mostrar a vocês é o jogo e com um botão de execução e parada, e estes basicamente ganharam os programas e pararam para que eles não façam nada especial
agora , você pode ver que o tamanho padrão é na verdade 100 pixels por 100 pixels. E é por isso que geralmente mudam o tamanho do para a primeira coisa. Quando, quando eu começar a programar qualquer coisa porque este não é um tamanho ideal para qualquer coisa. Realmente. Ok, seguir é o
botão de depuração . E parece um pequeno inseto. E se você clicar. Ele poderia realmente obter esta janela vazia onde você tem um nome e um valor. E é aqui que você pode ver suas variáveis quando você está depurando e você pode ver que aqui tudo mudou. Todos os botões mudaram. Sei que tem um botão de depuração, o
que significa executá-lo no modo de depuração. Então, se você tiver erros e você não conseguir encontrar esses erros, a depuração notada é bastante decente, e isso ajuda você a descobrir por que determinada variável não está vazia, por exemplo, ou por que é o seu círculo não se movendo ou seu formas ou o que for. E Destro é você cada variável que você tem um ponto de ruptura na frente e que valor eles têm. Mas eu não necessariamente uso isso quando eu quero uma depuração. Gosto de imprimir coisas, o cônsul usando a função de linha de impressão. Eu só prefiro fazer isso assim para outras linguagens de programação. Eu também faço a mesma coisa. Eu só imprimi coisas para o cônsul. Hum, há apenas alguns momentos em que uma depuração usada, mas se você realmente olhar, se você usou isso antes em outras linguagens de programação, então eu recomendo assistir Daniel Schiffman ver vídeo do YouTube no fundo no bugger D e ele irá ajudá-lo a entender como usá-lo s o Geralmente, que você faz é jogar o programa, e como você jogá-lo onde você coloca pontos de quebra, você vai ver as variáveis aqui com seus valores em termos. Talvez os valores do ar, não está certo. E isso ajuda você a entender por que algo não está funcionando e o que é. O que é tão poderoso sobre o “D “, ao contrário de sua impressão para o conselho, é que todo o programa realmente parou. Assim, toda a animação pára e você pode apenas usar isso para passo para percorrer as etapas. Então, se você estava dentro de Ah, Loop e você não sabe, nós não entendemos por que algo não está funcionando e branco ou quais valores estão realmente sendo apresentados, uh, para suas formas ou para qualquer coisa Você precisa, Teoh, pegue essa variável. Então esta é uma boa maneira de depurar seu casaco, porque então você pode apenas passo e você pode
passar por isso passo a passo. E depois há o continuar, que lhe permite saltar por cima de algo. E então há um botão de parada novamente. Eu não vou explicar isso porque eu realmente não usá-lo, então eu não entendo completamente como tudo funciona. Passei o vídeo por Daniel Schiffman, mas acho que é melhor você mesmo assistir. Se você quiser usá-lo qualquer. Se você desligá-lo, tudo volta ao normal, e então esta é uma parte muito importante no processamento para um monte de pessoas que gostam de usar. Outros descarregadores de programa foram bem utilizados Teoh outras linguagens de programação e um uso que para criar arte generativa. Eu costumo fazer minhas aulas em Java eso no modo Java, mas há outros modos aqui. Ah, há um frio p cinco Js, que é basicamente outro framework, então é semelhante ao processamento, mas é construído em JavaScript em vez de Java, e eles costumavam ter um editor como este. Mas agora eles têm apenas um editor Web, e eu acho que é muito mais simples e fácil de usar porque eu quero dizer P cinco vestido, ou JavaScript é para a Web, então é muito mais fácil usá-lo realmente em um navegador do que se você, porque se você usar este modo do que cada vez que você
executá-lo, ele vai abrir um navegador para você, e eu acho realmente irritante porque o editor Web tem um muito mais simples você I onde você pode realmente ver seu trabalho diretamente no lado direito do seu e você pode realmente fazê-lo. Ah, eu acho que a realidade. Então, enquanto você codifica, você pode ver seu odor de código em execução, o
que é muito bom. Mas eu não gosto dos cinco vestidos só porque é muito mais lento para certas coisas. Acho que o processamento é muito poderoso para muito mais rápido,
na minha opinião,
talvez porque esteja em um navegador,não
sei. Acho que o processamento é muito poderoso para muito mais rápido, na minha opinião , talvez porque esteja em um navegador, Mas se você tem o script Java usado antes, e se você acha que é muito mais fácil usar P cinco vestido do que fazê-lo, você também pode seguir meus tutoriais usando Java. E você pode traduzir tudo isso em soltar um script. Portanto, cabe a você como você deseja usar o processamento. Ele quer usá-lo com o modo drama ou vestido P 5. Há também um modo python. Eu nunca usei isso antes, então eu realmente não sei como ele funciona, mas há um. Então, se você usou Python antes, isso vai ser útil para você. Então, quando você baixar o software pela primeira vez, você não verá todos esses modos. Na verdade, você só vai ver desenhar. Acho que é só gota. Então, se você quiser adicionar os outros modos apenas para eles, eu acabei de adicioná-los para mostrar que existem outros modos. E você pensa como no agg? Não, só para mostrar o melhor,
um, um, você pode ver que também há um modo andróide Há o nosso para processamento se você já usou o nosso para análise de dados, hum, e dados visualização. Isso também é legal. Hum, sim. Eu realmente não sei muito sobre comerciantes, mas eu sei que há usado muito com o processamento, então você pode talvez verificar isso se você sabe algo sobre isso. Ok. Em seguida, você pode ver o arquivo ou o toque. Aqui é onde você tem seu arquivo de esboço ou seu esboço. Basicamente, arquivos de
processamento são chamados de esboços só porque eles produzem arte, e então você tem toques aqui, então se você quiser adicionar uma nova guia, você pode chamá-lo de qualquer forma. Então eu vou colorir apenas novo toque e você pode ter um novo arquivo. Então, tudo isso ia ser. Quando você salvar isso, tudo isso vai estar dentro da pasta de esboços. Então, quando você salvar qualquer esboço de processamento, ele vai criar uma pasta e cada arquivo que você adicionar aqui irá adicioná-lo a essa pasta. Ah, e esta é uma ótima maneira se você quiser organizar seus arquivos. Normalmente, quando crio aulas, coloco aqui. Hum, e você vai aprender mais sobre as aulas mais tarde nesta aula. Ah, se eu quiser talvez ter paletas de cores do que eu vou adicionar um novo arquivo para que apenas duas coisas
separadas. E para torná-lo mais limpo, torna muito mais fácil para você navegar no seu código porque ter tudo em uma pilha é um ideal porque você tem feito sua escola muito, e isso não é bom. Isso não vai te ajudar. Isso só vai tornar as coisas mais difíceis para você. Certo, e depois há a numeração da mentira aqui. Isso é ótimo para depuração. Normalmente é quando eu uso,
mas eu realmente não olho para os números de linha. Também é bom para explicar o que você quer explicar a alguém apenas dizendo a eles que para olhar para uma determinada linha, é muito mais fácil apenas deixá-los olhar através de todo o programa. Por último, mas não menos importante, há o console. Esta é a minha parte favorita sempre que eu quero uma depuração ou ver algo visualmente Ah, às vezes algumas das coisas que você bem aqui em seu código não vai aparecer na ilustração. Assim, posições, por exemplo, os números não serão mostrados a menos que você adicione um texto, objetos sua tela e anexe a posição a isso. Então você pode ver os números. Tirando isso, não
vou ver nenhum valor. Então, se você quiser ver isso, você pode imprimi-lo para o conselho. Nós vamos passar por isso também no final do trator, também. Então vamos ver como a linha de impressão do amigo funciona em como podemos usar tudo isso. E então, se você tiver erros, seja sintaxe, erros, eso se eu escrever algo, você pode ver os erros aqui, eles são muito úteis para corrigir suas horas. Então, se você quiser realmente olhar para a área e copiar a nossa mensagem, e então você pode ir e procurar por ela. É o Google? E aqui também, você pode ver erros. Então, quaisquer problemas que você possa ter, você pode ver aqui e, em seguida, ele vai dizer-lhe qual é a torneira. Então, se está neste top ou nesta coisa, e então ele vai mostrar a você o que vai estar em seu eso Se você nosso 12 on-line, então ele
vai dizer que o erro está realmente lá. Certo, então isso só precisa saber sobre você. É bem simples. Não há muito para isso, Senador. Podes acompanhar-me mais facilmente porque não sabias onde está tudo. Então, se eu lhe disser para abrir uma nova conta, você sabe para onde ir. Se eu lhe dissesse para olhar para o console, você sabe onde isso vamos para a próxima seção onde podemos realmente aprender sobre programação
3. Capítulo 2: Java no processamento: Neste capítulo, é crucial a prática do papai ao lado de mim para se familiarizar com os conceitos. É sempre melhor tentar você mesmo. É pessoal. Experiência fica melhor. Vamos praticar neste trator é tudo usado na programação em geral e no processamento. Especificamente, o primeiro semestre ou mais será sobre os conceitos básicos de programação, tais como variáveis, controle de
fluxo e funções e classes. E na outra metade discutirá variáveis do sistema e funções que você não precisa criar. Entradas do usuário através do mouse ou teclado e a ferramenta mais usada em muitos
projetos de arte generativa . Aleatoriedade. E, finalmente, vamos falar um pouco sobre uma parte muito importante da codificação que muitas vezes é negligenciada por iniciantes , que era estrutura de código e organização que abrangerá anotar seu código e separá-lo em vários arquivos. Agora vamos criar um novo arquivo de processamento e começar
4. Meio ambiente: Então, antes de começar a explicar ou explorar tipos de dados e variáveis, classes e funções e todas essas coisas, preciso explicar o ambiente. Primeiro, eso como você pode ver na sua frente, eu tenho duas funções, e eu vou chamá-los de função, e você vai aprender mais sobre o tradutor e como criar o seu próprio. Mas o veio nativamente com processamento. Então, no centro da função, você coloca tudo o que deseja ser inicializado ou executado uma vez, então não é para animação. Normalmente, não
é para exibir formas se, menos que seja apenas ah, forma que como a base do seu design que você só quer fazer e então porque você quer criar algo dentro da função de desenho, onde ele volta uma e outra vez. Então você apenas coloca o conjunto de funções. E na função de desenho, você coloca tudo o que você quer ser feito uma e outra vez. Então é um ciclo sem fim. É basicamente um loop infinito, então o que quer que você coloque lá, vai ser feito infinitamente uma e outra vez. Então, se eu quiser desenhar um círculo lá dentro. Ele vai desenhar o mesmo círculo uma e outra vez em cima dele em cima de si mesmo, até que você pare o programa. Então até apertarmos o botão de parada, basicamente, a razão pela qual eu quero que vocês saibam sobre isso é porque nós vamos estar trabalhando na função de
configuração e desenho o tempo todo. Vou precisar de um lugar onde você arrume tudo e outro lugar onde você possa animar se precisar animar coisas. E você pode basicamente recriar a função draw usando um loop que vamos falar mais tarde chamado um loop while onde você diria, embora verdadeiro E isso é algo que muitos programadores python fazem sempre que querem algo para Corram até que eles queiram parar, está tomado. Faça isso escrevendo um loop que nunca termina e instantaneamente. Então eles criaram para você, onde você pode desenhar qualquer coisa dentro dele. Há uma maneira de pará-lo e talvez desenhar secagem estática dentro da gota Funcionada. Eu já fiz isso antes, uh, e meus outros cursos e você pode usar a função sem loo para isso, então eles sabem que função ao vivo vai parar isso de looping. Então vai ser um pouco semelhante ao conjunto de funções onde tudo dentro da função de
doutorado vai ser feito uma vez. E, em seguida, há também outra função que é muito útil sempre que você quer um nós desenhar algo. Então, se você parar o loop e você tem uma função de desenho, mas então você quer que o usuário talvez clique na tela para tirar uma nova virgem do desenho , hum, você poderia usar? Desenhamos função para isso. Então talvez eu possa dizer, e eu vou escrever em comentários se um mouse é pressionado e se, onde eu Isto é o que eles chamam de código de estúdio. Quando você escreve coisas em comentários, apenas Teoh racionalizar o que você estava fazendo, então eu vou apenas escrever em Supercuts. Não é necessariamente um código real que ele escreveria,
Então, se as quantidades forem pressionadas, então eu quero que você conduza sorteio. Vou desenhar bem assim porque não quero escrever dentro dos comentários. Só é para que você possa ver que é colorido que é uma função real no processamento. Então nós desenhamos. Então, se eu quiser Oh, cada vez que eu clicar no mouse, ele vai redesenhar. Então nós desenhamos vai basicamente executar tudo dentro da função de desenho novamente. Então, toda vez que você chama, nós desenhamos, ele vai chamar a função draw. Digamos que eu queira desenhar um círculo e quero tentar de novo. Eu poderia apenas fazer redesenhar sempre que um mouse coleciona ou sempre que um teclado é clicado. Isso não importa. Ah, quando você quer estar seco, talvez
ele possa secar. Nós desenhamos a cada 10 quadros ou assim. Certo, isso só precisa saber sobre o meio ambiente. Uh, só preciso saber é que o conjunto de funções executa aquelas que soltam função repete. E então, se você quiser parar a função de desenhar de uma batida, você pode simplesmente usar a função sem olhar, e você pode usar o redesenho de Shinto. Basta chamar a função draw novamente para executar tudo dentro dela. Um fígado de novo. Agora vamos para o próximo modelo
5. Inteiros e floats: variáveis armazenam informações na memória em diferentes tipos de dados, como números e texto
neste módulo irá discutir dois tipos de números. Inteiros em carros alegóricos. Como inteiros são números inteiros, eles são ótimos para contar ou para qualquer funcionalidade que não exija precisão. carros alegóricos, Oscarros alegóricos,
por outro lado, são mais precisos, então são úteis para cálculos de divisão. Por exemplo, digamos que eu queira dividir a tela em retângulos iguais. E à tona é o caminho a seguir como inteiros em torno dos números, o que adiciona mais lacunas indesejadas ao turismo. Flutuadores são ótimos para vários usos, alguns dos quais são posicionar elementos na tela, definir um tamanho ou animar. Então, como você define esses dois tipos de dados para definir qualquer variável? Usado a palavra-chave tipo de dados aqui É ou em ou flutuar um nome de sua escolha e valor. Há instâncias em que você não atribuiria um valor a um estágio de definição de variável, e que se parecerá com isso e processamento. Embora os números sejam inicializados com um valor de zero por padrão, vamos ver um exemplo
6. Exemplo: Inteiros e floats: é demonstrar onde aprendemos sobre inteiros e carros alegóricos. A primeira coisa que quero fazer é falar um pouco sobre o exemplo que vou criar. Então dissemos que entra e flutua são ótimos para Anna conhecer Frandsen. Então eu vou criar uma pequena animação só para mostrar a vocês como usar variáveis e especificamente em tickers em carros alegóricos. Vou usar uma função de forma chamada círculo. Eu vou ficar com o círculo para todas essas demonstrações e este trator, só porque eu ainda não apresentei funções de tomada, então eu não vou incluir muitas. Vai ser só um círculo, e vou explicar como funcionam. Só por causa dessas demonstrações para começar com o círculo,
vou desenhar o círculo só para mostrar como ele parece. Só por causa dessas demonstrações para começar com o círculo, Então podemos usar as variáveis. Então Circle requer três argumentos. O 1º 1 é a exposição na tela. O 2º 1 é a posição branca na tela
e o 3º 1 é o tamanho. Então, para o primeiro 1 eu vou apenas colocá-lo no meio da tela. Uma vez que a nossa tela tem tamanho de 400 por 400 pixels. Então o meio vai ser 200 mãos no eixo Y. Eu vou fazer 200 também, e então eu vou dar um tamanho de 20. Agora, nós já sabemos que esta é a exposição, e por que posição? Para mover este círculo, vou ter que mudá-los em variáveis para que eu possa incrementar essas variáveis. Agora, se eu ganhei isso agora, eu vou ter um círculo no meio da tela. Mas eu quero movê-lo. Quero movê-lo para a direita ou para a esquerda ou para cima e para baixo. Ok, então nós conversamos antes sobre montar e desenhar. Então eu vou criar uma animação e não fazer um círculo desenhar uma e outra vez. Eu tenho que na cor de fundo aqui. Então toda vez que vai desenhar cor de fundo e, em seguida, o círculo, se eu vou aprendê-los, o círculo então vai parecer como se eu já tivesse um círculo. Eu não sou muitos em cima um do outro, e eu ia parecer mais limpo quando antes era, você sabe, um pouco defeituoso porque tem muitos em cima do outro. Ok, agora eu quero mover a posição X. Então o que eu vou fazer é criar um inteiro e chamá-lo de X, e eu vou dar-lhe um valor inicial de zero. Mesmo que você não faça isso, os valores iniciais pelo falso herói. Mas eu gosto de fazer isso. Só para saber que eu queria começar no zero. Ok? Não, para animá-lo, eu vou escrever X e, em seguida, mais o valor antigo de X mais do valor anual ou este
valor passo eu vou apenas fazer Eu sei que isso parece um pouco estranho para usar a mesma variável e
outra vez dentro de si mesmo. Mas, hum, o que eu estou fazendo, basicamente, é atribuir e você valorizar a variável antiga em vez de ter muitas variáveis, o que não faz nenhum sentido. Porque se eu quiser fazer uma animação de 10 quadros que eu vou ter 10 x ah, variáveis, ou eu vou ter um loop for para criar todas essas variáveis para mim, que não faz nenhum sentido. Então? Então a maneira que você faria isso é apenas fazer X, que significa que o velho X que temos aqui um sinal que o antigo valor de X. Então isso é tipo de coisa que você X. Eles estão dizendo Ok, agora X vai igualar o que quer que fosse antes. Além disso, digamos um, então eu quero que o tamanho do meu passo seja um pixel. Não, se eu fizer isso, nada vai acontecer porque eu realmente não usei aqui no meu círculo. Então agora eu poderia apenas fazer X em vez dos 200. Agora isso não vai começar. 200 vai começar em zero. Mas isso é bom. Se eu quisesse começar um 200, terei que inicializá-lo um 200. E vamos fazer isso por enquanto, só para tornar o exemplo de É mais simples, você sabe que ele vai se mover do centro para a direita. Agora isso está se movendo porque começou um 200, em seguida, cada vez, adicionando querer a ele. Então é 201 202 203 e nós não podemos necessariamente ver ou apenas porque a contagem de quadros é por padrão, 30 quadros por segundo e então nós não necessariamente vemos. Vê isso? Movimentos, cada pixel. Não. Se eu quiser que seja mais lento, posso fazer 0,5, mas não vai funcionar. Foi sobre isso que eu falei quando disse que se eu quisesse um movimento mais preciso ou se e um de mais preciso posicionamento
mais preciso, então eu vou ter que virar. Então eu vou mudar isso para flutuar e vai funcionar. E agora posso ser ainda mais preciso com meus movimentos. Então, se eu quisesse ser muito, muito lento, eu poderia fazer 0,5. Eu também posso fazer 0,1, o que vai ser muito lento. E isso é útil quando você está criando um desenho. Então, se eu quiser desenhar isso e eu quero o fundo removido, ele vai desenhar vai ser mais suave. Mas se eu fizer mais um, então vai ser tronco aqui. E se eu fizer, mais três vai ser mesmo Trunk aqui e assim por diante e assim por diante, porque o movimento é muito rápido. Então está se movendo. Na verdade, três grandes almas cada passo cada franco e isso é algo dependendo do que você está procurando. Algumas pessoas gostam desse baú. Você olha, algumas pessoas estilo, têm muito bêbado e movimentos de estilo de pessoas têm movimento muito suave que se parece com uma pintura no final. Então depende do que você está procurando, que você quer criar. Agora, se eu quiser me mover para o lado oposto, eu posso apenas dizer um menos três em vez disso e este vai se mover para o outro lado, e nós podemos fazer a mesma coisa por isso é apenas flutuar largo e vamos começar em 200 e então Vou mudar isto para o porquê. E agora isso vai se mover para o lado esquerdo muito rápido e para baixo, hum, inclinação. Então, se eu queria ser muito diagonal, então eu vou apenas chegar três e vai ser 45 graus. Eu ia passar pela esquina, então é basicamente o que você pode fazer com carros alegóricos e vestir-se. E há definitivamente muitos exemplos que vão aparecer em breve que vão usar carros alegóricos e introduzir muito. Então, em cada demonstração, são que vão vir depois que os tipos de dados vai ser algo que usa alguns
desses tipos de dados novamente. Então, se você aperfeiçoar estes, você pode facilmente ir para os próximos módulos.
7. Cor: Este tipo de dados é um pouco diferente, mas tudo o que precisamos saber sobre ele é que ele armazena cores de Fred Green, azul e valores Alfa. Esses valores vão de 0 a 2 55 O tipo de dados de cor é usado com as
funções de traçado de preenchimento , que serão visitadas mais tarde para declarar uma variável de cor. Adicionar a palavra-chave cor antes do nome da variável para o valor. Existem diferentes maneiras de armazená-lo. Você pode usar um código hexadecimal ou usar a função de cor com 13 ou quatro parâmetros. Se você usar um parâmetro, estará armazenando um valor em escala de cinza de preto para branco. Se você usar três, então você está armazenando um espectro de cores RGB, ou
seja, todas as cores que são o resultado da combinação de um pouco de vermelho, algum verde e algum azul. Digamos que você tenha 255 para vermelho, zero para azul e zero para verde. Então você tem uma cor vermelha brilhante. O mesmo vale para azul e verde. O quarto parâmetro é para o valor alfa ou, em outros termos, o valor de passagem A. A transparência pode adicionar outra cor à sua cena sem adicionar outro valor de cor. Para entender melhor este tipo de dados, recomendo experimentá-lo sozinho. Essa é a nossa deixa para ver um exemplo
8. Exemplo: cor: ok para o exemplo de cor. Eu quero começar falando sobre a função de fundo onde a função de fundo está realmente usando os dados de cor. E como eu expliquei no vídeo, quando eu uso apenas uma variável, então eu estou usando um valor de preto para branco. Então, de 0 a 55. Então agora eu tenho um fundo de branco. E se eu mudar isso para zero, eu vou ter um fundo é preto. Então isso é basicamente cor. eu No vídeo, disse que usamos cores principalmente com Phil e funções de derrame, e isso está correto. Esses ar, as funções que eu uso com formas. Mas esqueci de mencionar a função de fundo, que também usa a cor do tipo de dados. E esta é uma fazenda usando 200 isso me dá ótimo. Então eu vou voltar. Teoh, espere. Só porque é com isso que eu começo, geralmente antes de eu realmente estabelecer um design e ela é minha paleta de cores, ok? E para definir uma variável de cor. Como eu disse, usamos o tipo de dados de cor, e então você pode dar o nome que achar apropriado. Então nós queremos dizer se eu quero ter uma cor azul. Quero chamá-lo de azul. Apenas tentando fazer sentido dos valores com o nome da variável. Só para facilitar para você uma vez que você começar a trabalhar em projetos maiores vai ser muito mais difícil para você ir e para trás para entender quais variáveis você está criando e por quê. Ah, você está desistindo dessas variáveis que eu realmente não gosto ao criar variáveis com uma alavanca exceto se é algo que é muito comum para muitas pessoas usarem. E eu não vou usar azul só porque Blue é realmente nativo do processamento. Ok, então eu vou criar três variáveis de cor chamadas, um RDD. Então o 1º 1 está dando para ter a cor vermelha. E eu disse, Teoh Guy explicou que há várias maneiras de Teoh inicializar uma variável de cor. Um deles é usar um código hexadecimal, que é o que eu costumo usar em minhas aulas ou em meus projetos pessoais, porque é muito mais fácil usar seis figuras do que usar uma função de cor inteira com 3 a 4 parâmetros, especialmente se você tiver um valor Alfa. Então, mas para esta demonstração, eu vou mostrar a vocês a função de chamador também. Então, para um vermelho eu vou fazer para 55 são Então nós temos RGB na função de cor para valores. Vou dar o valor mais alto ao vermelho e depois não vou dar valor ao verde
e o teu valor para o azul só para lhe dar uma cor vermelha brilhante e depois vou usar a Jeanne para o verde e fazer a mesma coisa. Vou dar zero pelo radicalismo. Um vermelho novo. Eu quero uma cor verde e eu não quero nenhum azul. Vou fazer a mesma coisa pelo azul. Então, se alguém que usa seu programa ou se ele alguma vez compartilhar seu programa com alguém, eles vão entender que isso significa vermelho e isso significa verde e isso significa azul. Então isso é descritivo o suficiente só porque as funções de cor já estão explicando o que você está tentando definir. Use seus melhores julgamentos ao criar seus nomes de variáveis. Cabe a você como você quer criá-los, mas apenas torná-los descritivos o suficiente para que todos possam entendê-los mesmo que você seja o único olhando para este código e então vamos usar esses valores para colorir nossos círculos. Vou ficar com círculos novamente porque ainda não introduzimos as funções de forma . Então eu quero usar apenas uma coisa para não confundir você. Ok, eu vou colocá-lo no meio da tela, então eu vou apenas fazer 200. 200 porque a nossa tela é 400 por 400. Hum, e metade disso são 200. E então eu vou dar um tamanho de 20 na verdade, vamos torná-lo um pouco maior. Então eu vou dar um tamanho de 100 e depois colorir isso. Então, se você tocar isso agora, você pode ver que é branco com traço preto. Portanto, estes são na verdade os valores padrão para a função traçado e preenchimento. Ah, mas nós vamos mudar isso. Então, vou fazer o Phil. Vou dar a cor vermelha. Quero escolher a lata vermelha. Não, ele pode ver que tem um preenchimento vermelho, mas agora o traço ainda é a cor preta desenvolvida preta. Normalmente, o que eu faço é apenas usado a função de drogas do nariz e isso remove o acidente vascular cerebral. Você pode mudar a cor do seu traço,
então talvez eu queira dar uma cor verde, a cordo grupo
deles,
eles foram criados. Você pode mudar a cor do seu traço, então talvez eu queira dar uma cor verde, a cor do grupo
deles, E eu posso ver. E você pode ver que o que eu fiz aqui, eu usei um traço dentro da configuração e eu costumava preencher dentro da função de desenho. Cabe a você como você quer fazer isso, porque é baseado em seu programa. Ah, por isso, por exemplo, eu não necessariamente definir o derrame aqui a menos que eu queira que o mesmo golpe para tudo no meu programa seja assim. Mas se eu quiser isso específico para apenas um círculo e eu vou colocá-lo aqui para que seja lá o que for por baixo do golpe Fillon aqui, vai ser colorido. Então agora Circle vai ter um preenchimento vermelho e um traço verde. Mas então se eu criar outro círculo e nós vamos realmente colocá-lo em zero para 15 e 200 dado o tamanho de 100 Eu sei que se eu executar
isso, ele vai ter a mesma cor. Então, se eu quiser mudá-lo, eu posso simplesmente substituir isso escrevendo outra função de preenchimento, e este tempo de mal-estar pode ser variável, que é a minha cor azul. E vou deixar o derrame igual para que ainda tenha o derrame de rainha. Mas se eu quiser mudar o curso para este também, eu tenho que escrevê-lo antes disso. Então eu vou apenas dar-lhe um golpe vermelho, vai ter um golpe vermelho. Então, o que quer que você coloque antes da forma, ele vai colorir com essas cores. Então, se eu não quero nenhum derrame para este, eu posso apenas fazer um acidente vascular cerebral. Não vai ter nenhum derrame. Então, sim, é assim
que você substitui as cores. Então, desta vez eu vou mostrar a vocês como criá-lo usando código hexadecimal. Então você vai fazer a mesma coisa. É uma cor, então ainda vai ter um tipo de dados de cor, e então eu vou apenas fazer uma cor branca, e então ele vai abrigar nosso símbolo e seis s. Então isso realmente vai me dar uma cor branca. Então, se eu colocá-lo aqui, uh, vamos criar uma cor preta para que possamos mudá-lo e ver como ele parece ser engajado. Chama-lhe preto, e também uso um código hexadecimal. E para preto, na
verdade são seis zeros. A primeira vez que eu vou usar o branco, e então eu vou mudar este dedo de preto. Você verá que ele está indo para trens para preto então os hacks vai realmente trabalhar da mesma forma a função de cor funciona, mas é muito menor. É mais fácil encontrar quando você vai para adobe color ou cooler ou qualquer um dos sites onde você tem paletas de cores. E se você tem uma infinidade de cores, então é muito mais simples escrevê-lo dessa maneira do que escrever a função de cor uma e
outra vez. E mesmo se você quiser copiar a cor de qualquer um desses sites, é muito mais simples de usar para copiar uma cor,
em seguida, copiar um imposto do que copiar os três números que entram dentro da função de cor. E uma coisa que eu não expliquei no meu vídeo no meu vídeo explicativo é que esses códigos
hexadecimais vão de 0 a 9. Então cada um fez isso realmente vai de 0 a 9 e, em seguida, de um dedo após o A T F são equivalentes a 10 a 15. Mas porque estes ar seis dígitos para que eles substituíram Ah, o que eles precisavam, que letras em vez disso? Além
disso, é por isso que há uma combinação de dígitos e caracteres que para branco completo, você vai para o último valor, que é seis EFS. E então, se você quiser ir para preto, então você não tem nenhum valor. Então são todos zeros. É basicamente como de 0 a 55 a 55 é o valor mais alto. Então é o mais brilhante. Então é branco e zero é nenhuma cor ou nenhum valor. Então é preto. Isso é praticamente tudo o que precisamos saber sobre cor e vamos passar por exemplos
no próximo capítulo é, bem, podemos ver como a cor é usada um pouco mais.
9. Boolean: Nosso próximo tipo de dados é útil para alternar entre dois estados. Isso porque só tem dois valores possíveis. Verdadeiro e falso. É equivalente a um interruptor de ligar e desligar em nossas vidas diárias. Há também tipos retornados na condição. ALS, por exemplo, Verificar se um número é igual a maior que a nossa lista do que outro número resultará em verdadeiro
ou falso. Aprenderemos mais sobre as condições mais tarde. Neste curso, Cem usar exemplos para bilhões seria criança entre duas cores diferentes, com base na posição de um elemento em nosso campus para verificar de dois elementos colidindo ar ou para limitar alguma animação para definir touro inclina você seguir a mesma sintaxe é os tipos de
dados anteriores, mas com a palavra-chave Boolean em vez disso. E o valor padrão para esse tipo de dados é false. Aqui está um exemplo. Código
10. Exemplo: Boolean: Ok, vamos falar um pouco sobre bilhões. Então, para barras é três exemplo vai ser um pouco mais difícil. Só porque requer condicional é mostrar o seu poder. Vou mostrar-lhe muitos exemplos usando condicional ou usando uma declaração if e eles vão ser muito fácil de entender só porque eles são muito semelhantes a como você fala em Inglês ou em qualquer outro idioma usando zor condicional quando você quiser para contar a alguém. Se algo acontecer, então outra coisa pode acontecer. Ok, então como você começa? Se você se lembra do vídeo explicativo,
nós colocamosisso em impostos começa com uma palavra-chave,
e eles são chamados de barras porque eles têm o nome de alguém chamado George Boole. Se você se lembra do vídeo explicativo,
nós colocamos isso em impostos começa com uma palavra-chave, Você pode ler mais sobre isso on-line se você gosta do que você sabe, O que precisamos saber aqui é que precisamos da palavra-chave Boolean, a fim de criar uma variável com um valor verdadeiro ou falso. Na maioria das vezes está associado com a condição ALS. O que basicamente acontece é que o if condicional, retorna de tipos de dados de barras, modo que ele retorna verdadeiro ou falso, para que ele vai dizer? Sim, a condição foi feita ou sabe que a condição estava intacta. Então, sim, é onde eu costumo lidar com barras de ouro. Então eu não necessariamente acerto bilhões o tempo todo. Às vezes, se eu quiser alternar algo baseado em desligar interruptor seco. Se eu quisesse ser como se eles o usassem como uma entrada do usuário, digamos que você queira criar uma ilustração e ou um generativo nossa criação, e você quer que a pessoa escolha se quer que ele seja colorido ou em preto e branco , ou se eles querem ver o design em preto e branco ou a cores. Então você pode usar um ouro para dizer preto e branco e depois colocá-lo em quedas. Mas quando a pessoa clica em um número de cliques e algo que mudaria o design em preto e branco do que aquela variável booleana está indo, Teoh muda para true, que vai produzir um design que é em preto e branco. Então, basicamente tratando o que você quer com ele, hum, então hoje vamos Teoh fazer um exemplo com cor já que acabamos de aprender sobre cor. Então vou fazer o que acabei de falar. Então eu vou chamá-lo de escala de cinza variável, e eu vou torná-lo falso, na verdade, vamos começar com True. Então, quando eu começar, eu quero que a ilustração seja em tons de cinza. Então eu vou desenhar um círculo novamente. Vou pô-lo no meio e vou ter 100 píxeis e depois vou usar o Phil, está bem? E em vez de criar uma variável de cor, eu só vou colocar a cor diretamente dentro da função de preenchimento porque eles também tomam as mesmas coisas que a função de cor leva. Então eles levam RGB uma barriga Alfa para o quarto parâmetro. Então eu vou apenas fazer uma cor arbitrária porque eu sei que eu vou usar um f condicional. Não precisa se preocupar com isso, mas essa é a única maneira que posso demonstrar do Julian. Vou dizer que se a escala de cinza for igual a verdade,
terei um preenchimento de cinza e se a escala de cinza for igual a falsa,
terei essa cor. Vou dizer que se a escala de cinza for igual a verdade, terei um preenchimento de cinza e se a escala de cinza for igual a falsa, Então agora é verdade e vai ser em tons de cinza. Mas se eu mudar, este dedo cai, mas vai ser esta cor laranja brilhante. Mas é basicamente assim que você vai criar um ouro. Tudo o que precisa saber agora é como criar um ouro. Não vamos criar exemplos usando bilhões em toda a classe, mas vamos usar, se condicional, é muito. Então estes basicamente usaram o valentão no tipo de dados atrás da tela. Ah disse que agora escala cinza é igual a verdade vai retornar uma data por hora. Então é trekking se o valor de uma escala de cinza é igual a true, e ele vai retornar se é verdadeiro ou falso. Então, quando isso era falso, isso realmente se tornou falso, então não fez um, e então isso era verdade porque grande habilidade é de fato, falsa. E assim este é executado. Você não tem que se preocupar com as condições que vamos falar mais detalhadamente sobre elas. Quando os exemplos para eles eu vou junto. Então você só precisa saber se Villines retornam verdadeiro ou falso? E que, embora usado a maioria do tempo com condicional
11. Personagens e cords: se você está olhando para o imposto para o seu Dennard of art ou fazer algumas operações simples, como carregar uma imagem, então você precisa das cadeias de caracteres de tipo de dados. Aaron Array de caracteres, que é outro tipo de dados e caracteres de processamento, foram úteis para rastrear. Se uma letra é clicada no teclado ou para desconstruir uma string irá usá-los em um exemplo na seção de tipo do trator para saber de volta aos pontos fortes. Digamos que queremos uma carga de um arquivo. Enfraquecer. Armazene seu nome em uma variável como então vamos precisar da palavra chave novamente. Desta vez é string e, em seguida, o nome da variável e, finalmente, o valor. No entanto, desta vez o valor tem de ser armazenado entre aspas duplas, para que não confunda o processamento. Se o processamento vê um monte de placas sem aspas, ele espera que eles sejam variáveis, e ele vai lançar um erro informando que as variáveis estão definidas. Além disso, esteja ciente de que ele deve ser aspas duplas para strings porque aspas simples são para caracteres. O processamento irá lançar um erro de qualquer maneira, então não se preocupe se você não memorizar tudo isso imediatamente. Aqui está um mini exemplo rápido para você
12. Exemplo: de guias e cords: Ok, vamos falar sobre personagens e cordas. Quero começar definindo um personagem e um blister de cordas com cordas. E então vamos falar sobre personagens um pouco mais porque strings um geralmente usado mais frequentemente e caracteres em,
ah, ah, muitas das linguagens de programação, não apenas processamento. Ok, String é o único tipo de dados do tipo de dados que eu expliquei que tem uma letra maiúscula para o teclado. Então todos os outros que usamos começam com uma letra pequena. Então final realmente começar começa para a letra pequena. Ah, float cor de letra pequena também. Bullying e string de caracteres é o único. Agora tem uma letra maiúscula. Não vai funcionar com uma letra pequena. E só para seguir a convenção de todas as aulas de programação lá fora que ensina programação para iniciantes, eu vou fazer um “olá mundo”. Então, olá. O mundo é basicamente um primeiro programa que todos executam em qualquer linguagem de programação ou qualquer coisa relacionada à programação. Então, se você quiser fazer um desenvolvedor da Web e eles vão começar com o “Olá Mundo”, então eu
vou apenas ... ... Eu vou chamá-lo. Olá. Certo esta bebida. Olá, mundo. Isto é basicamente quando uma string é, hum como você usaria isso. Normalmente você o usaria onde a função de texto. Então, se você quiser escrever, um, o texto, este guindaste, você usa a função de texto você pode usar Olá dentro dele, e então você pode definir a posição de onde você quer que ele esteja. Vou colocá-lo no centro de novo, e não vamos ver nada só por causa do padrão. A cor de preenchimento é branca, então eu vou mudar o dedo do pé preto para que possamos ver alguma coisa, e podemos ver “Olá”. O mundo está na tela às 202 100. Então é na verdade no centro. Você faria porque não está alinhado. Centro. É uma linha à esquerda. Então, o lado esquerdo da frase ou a frase está na verdade no centro. Existem outras funções que farol podemos falar mais tarde. E os exemplos quando falamos de texto um pouco mais, , e podemos ver como podemos alinhar tudo isso. E agora, se você quiser usar a variável de caractere, você pode apenas fazer
caractere, e você pode nomeá-lo o que quiser. Normalmente não defino caracteres dessa forma, então é um pouco para nomeá-lo. Mas vamos dizer que eu quero chamá-lo de salvar e eu vou dar-lhe o personagem s. E como eu mencionei em Explication Video for Strings, é aspas duplas para personagens. É uma única citação. Ele não vai deixar você fazer o contrário e vai terminar cínico e tudo bem, então eu não necessariamente inicializá-lo dessa maneira. Normalmente, forma como usamos caracteres é quando eu quero salvar uma imagem. Então, se eu queria faixa de uma pessoa clicou no botão S, então eu queria salvar uma imagem. Digamos que talvez você queira que a pessoa mude as formas em seu design. Então talvez você tenha criado dois designs diferentes com um usando círculos e o outro usando, uh, quadrados e com base no personagem que eles estão clicando no teclado, você quer alterá-los. Então, digamos que você os queira. Teoh desenhar que você queria, projetado para mudar em quadrados, e então se ele está usando a letra C, então você quer mudar esse sinal para círculo e você usaria isso dentro deles uma função chamada deprimida ou chave liberada. Assim, sempre que o teclado é realmente pressionado, ele pode entender as letras que você está pressionando para que possamos verificar se esta letra é realmente Preston a tecla que é pressionada. Então faça isso ou aquilo. Esta é apenas uma demonstração para ver como uma string em um caractere são definidos e como você pode usá-los. Então aqui nós usamos divertido como nós digitamos a frase dentro da variável Olá dentro da função de
texto. Sim, e aprenderemos mais sobre texto ou tipo e a seção de tipos do Trator 3.
13. Arranjos: último, mas não menos importante em tipos de dados, para este curso, é o tipo de dados de matriz, que basicamente engloba todos os outros A raise store múltiplos valores, e uma variável é oposta aos tipos de dados mencionados anteriormente, e os valores são os tipos de dados mencionados anteriormente. Por exemplo, podemos usar um aumento para armazenar várias cores e usá-las para colorir formas aleatoriamente usando o mesmo nome de variável. Imagine se quiséssemos guardar cinco cores para usar a cena dela. Vai precisar de cinco linhas de apenas variáveis de cor. Isso é um pouco absurdo, na verdade restritivo a longo prazo como aumento aberto. Tantas portas para nós. Veremos nessa manhã os exemplos do próximo trator. Vamos ver agora como podemos definir um aumento Para começar, temos que saber que tipo de dados queremos. Uma loja. Vamos ficar com a nossa cor. Exemplo para uma matriz de cores vai precisar da palavra-chave color, mas desta vez vamos segui-la com dois colchetes vazios. Esta é a nossa indicação de que é uma matriz seguirá que com um nome de variável. Eu gosto de ficar com nomes de variáveis pleura porque eles fazem mais sentido. Existem várias maneiras de declarar um aumento. Você pode ter inicialização vazia ou atribuir valores diretamente. A regra geral é adicionar os valores diretamente no estágio de definição se você tiver um pequeno número de valores constantes, que geralmente é minha matriz de cores,
no entanto, no entanto, se você precisar adicionar mais valores mais tarde do que apenas estado e tamanho inicial para o array, assim eles geralmente funcionam para posições de elementos iniciais, entre outras coisas. Outra coisa muito diferente sobre um aumento é que quando você usá-los, você tem que usar o nome da variável e a posição do valor solicitado dentro colchetes. E uma coisa muito importante a observar aqui é que as posições começam de zero, não de uma. Então, se você precisar do valor da primeira posição, você usará zero para a segunda, você usará um e assim por diante. Vamos ver um exemplo rápido
14. Exemplo: matrizes: para invadiu sua altura. Você pode basicamente usar qualquer um dos tipos de dados que já usamos antes e matriz de crédito fora dele. É basicamente uma lista de valores dentro de uma variável fora de um determinado tipo de dados. Vou continuar com o exemplo de cores porque é o mais usado em meus projetos , e acho que é muito mais fácil para você vê-lo. O Howie criou porque para as minhas outras aulas ou para as próximas aulas, vou usar isto muitas vezes. Então eu vou começar com o tipo de dados de cor. E como dissemos para indicar que é uma matriz, você terá que anúncios colchetes. Isso é basicamente só dizer que estamos dizendo para processar isso. By the way, esta não é uma variável de cor regular. Na verdade é Nobre, então sim, ele vai conter uma variedade de cores ou uma lista de cores, e então você pode nomear o que quiser. Claro, você sempre tem Teoh abster-se de usar o mesmo nome de variável que o tipo de dados. Ele trabalhou porque não vai funcionar, uma vez que é nativo para o processamento, mas para um aumento, eu costumo usar o mesmo durável ele Então, para cores, eu uso paleta ou eu usei cores apenas porque a cor é usada. Mas as cores não é porque eu costumo usar o plural para indicar que é uma matriz quando eu
usá-lo fora em outro lugar no programa, mesmo que Reyes realmente dizer que há um aumento apenas por causa da maneira que não são usados e ao longo do programa eles são muito diferentes das variáveis regulares. Mas eu gosto de usar cores ou eu gosto de usar o plural só porque é muito mais fácil para mim. Teoh dizer que sempre que eu falo sobre tudo bem, há porque é muito mais fácil para mim pensar sobre um aumento dessa maneira. E então eu disse que há duas maneiras de definir um aumento para as cores. Vou mostrar-lhe a maneira direta de atribuir valores à matriz de cores que está usando as chaves e colocando diretamente o valor dentro de lá. E depois vou mostrar-te o outro caminho. Ninguém pode usar também, que também é usado muito, ou na maioria das vezes do que diretamente como este, porque na maioria das vezes quando ele usou um raise, ele quer armazenar um monte de valores que são inicializados ao longo do programa. Então, como loop, por exemplo, gera posições no programa, então você quer salvá-lo e isso. Tudo bem, então não queremos necessariamente definir diretamente os valores dentro dessa matriz antes da
variável de cores ou para cores. Bem onde você só quer um conjunto de cores para usar em todo o programa, então? Sim. Definitivamente atribuí-lo diretamente é o caminho a seguir. Ok, então eu vou te mostrar também. Howie, costuma escolher a minha paleta de cores. Então eu vou através de cor dot adobe dot com, e eu tenho meu cofre parece, e eu vou apenas usar este, mas você pode ir e verificar o outro. Verifique as tendências. Drones baseados no que eles têm em mãos. Estes são todos os projetos no novo projeto que estão agora em minhas mãos nessas seções, e há muitas cores em diferentes categorias. E então você pode ir para a seção de explorar e ele também pode procurar minhas cores. Repito, digite laranja. Você pode ver todas as paletes de carvão que têm a cor ou dentro delas. Hum, eu já tenho um conjunto na minha biblioteca. Vou usar este, e vou copiar e colar estas cores aqui. Então é por isso que usar código hexadecimal? Porque é muito mais simples copiar e colar porque basta copiar o código hexadecimal e colá-lo . Ok, eu sei que se nós estamos no programa porque nós não usamos Array não é fazer nada. Então vamos realmente desenhar círculo novamente
, no centro da tela. Não vou dar um derrame por enquanto. Você também pode usar a função de preenchimento Norte em qualquer ponto onde você quer apenas um golpe e não, Phil. Ok, então por enquanto, vamos usar isso e então dentro da
função Phil ah, função Phil ah, eu vou usar a matriz de cores. Saiba se Aziz disse que está no vídeo de explicação. Se eu quisesse todas essas cinco cores, é um pouco absurdo usar cinco variáveis. É muito mais simples usar uma matriz de cores. Agora, se quisermos usar menos uma dessas cores, eu quero usar a primeira cor. E como mencionei novamente no vídeo Explication, usei o nome da variável como qualquer outra variável. Mas em vez disso eu vou usar os colchetes especiais e,
em seguida, dentro aqui , no estágio de definições, você não precisa necessariamente inserir nada aqui. É apenas uma indicação de que, a
propósito, esta é uma matriz e não uma variável regular. Mas aqui, você vai ter que definir uma posição porque você está chamando os valores agora. Então, se eu usar o 1º 1 em um aumento, eles começam com zero e termina com um a menos do que o comprimento da matriz de cores. Agora temos cinco. O último vai realmente ser uma posição para 0123 e quatro. Se eu quiser usar o 1º 1, vou fazer zero. E isso realmente vai levar a cor na primeira posição. E se eu quiser usar o 2º 1, vou usar um. Vamos usar todos eles para ver as roupas que realmente temos, e depois duas para a 3ª 11, três e quatro. Agora, o que acontece se eu realmente usar algo ou uma posição que não existe aqui? Então digamos que 55 não exista. Então, se você esquecer que as posições dentro de uma matriz começam com zero e você acaba fazendo 123 e quatro. E o último vai ser cinco. Pensando que vai ser cinco, você vai receber um erro. Então eles basicamente vão dizer a você chover paus fora de equilíbrio exceção que eles podem
fazer o que você está pedindo. Só porque há um erro aqui e o índice de Ray está fora de equilíbrio. Exceção significa que você está indo para fora da matriz fora das posições dentro
da matriz. Então não há uma posição cinco há apenas 0123 e quatro, e este é um muito útil são realmente um monte de vezes quando eu uso um loop e eu quero
passar por toda a direita, especialmente se você tem um grande array que você não vê o tamanho dele aqui, você tende a entrar neste lote er. E ver isso só faz você entender imediatamente que oh, talvez eu esteja realmente usando uma posição. Então você vai realmente olhar para a posição dos arrays que você está usando para descobrir por que ele está realmente indo fora dos limites. Sim, então eu só queria mostrar que são, mas se você for de 0 a 1 menos do que o comprimento, então você está pronto para ir. Outra forma de
definir variáveis. No exemplo, vídeo realmente mencionou que você pode usá-lo para armazenar posições. Então eu vou apenas fazer outra matriz onde eu vou armazenar. Ele flutua os valores e também novamente, Ah, vamos usar colchetes para indicar que está em Ray. Vou para posições seguras porque é um conjunto de posições. E desta vez eu não posso definir um número de posições diretamente, geralmente porque eu uso posições onde eu armazenar posições como eles geram dentro de quatro Loop, que nós vamos ver alguns módulos mais tarde, como eles não leu essas posições, eu vou armazená-los nas posições fora do caminho com Inicializar um raio vazio no trabalho sobre e o processamento está usando a nova palavra-chave e, em seguida, usando novamente o tipo de dados, uh, então basta flutuar. Então, novamente, os colchetes. Mas desta vez, em vez de ter colchetes vazios, porque agora estamos inicializando uma variável vazia. Mas precisamos saber com quantos vamos começar. É um valor inicial, então você pode escrever qualquer coisa e então você pode expandi-lo mais tarde, se quiser. Na maioria das vezes, já
sabemos quantos vamos usar. Então, para um andador aleatório, por exemplo , para
fora, que é um exemplo pelo
qual vamos passar e trator três. Mas você pode começar com 400 caminhantes aleatórios ou 1000. Depende do olhar que você está procurando. Então agora, digamos que vou começar com cinco médicos, certo? Não vou continuar gerando essas posições, mas vou te mostrar como você faria uma por uma. Por isso, neste momento não temos cinco. Então, para o 1º 1, definimos que sua posição zero. Então eu vou apenas fazer posições. E então eu estou basicamente dizendo ao programa que na posição zero, eu quero o valor da loja de 200. Digamos e apenas tenha em mente que estes são valores únicos, então eles não são acidentes meus valores. Eu só chamo isso de posições isso para facilitar, mas faria mais sentido se eu chamasse de “talvez exposições”. Por isso, vou fazer isso por enquanto. E eu vou fazer a mesma coisa por aqui, então vai ser chamado de exposições em vez disso,
um,para ,
um, possamos substituí-lo aqui, e então o 1º 1 eu vou dar-lhe um valor de 200. Vamos fazer outro. Então esta vai ser a exposição na posição um na matriz e vamos dar-lhe qualquer valor
aleatório, e então eu vou fazer um e zero, para que você possa ver uma grande mudança aqui. Hum, para o de posição para eu vou fazer com que seja zero. Você vai ter que fazer isso por três e quatro também. É por isso que loops ou melhor. Porque então você pode passar por toda a coisa e gerar valores lá. Então agora eu vou usar a Exposição zero aqui, e você vai ver que ele vai ter o valor 200 aqui. Ok, o problema aqui é que eu não tenho derrame, e então você não pode vê-lo porque o preenchimento padrão é na verdade branco Síria, e você pode ver o círculo aqui. Ok, agora, vamos fazer a posição para ver uma grande mudança. Agora é que a exposição está na verdade em zero. Não, eu vou tocar. Na verdade, veja. A exposição é realmente adicionar zero e A razão Círculo é cortado ao meio é porque ele é desenhado a partir do centro, então seu centro está realmente na posição. X adicionar zero. Isso é tudo o que precisamos saber sobre tipos de dados na próxima seção. Estamos realmente passando por outros conceitos e processamento, como, se condicional, é loops e funções e classes e objetos.
15. Condicionais: declarações condicionais são uma ótima maneira de controlar o fluxo de seu casaco. Eles estão conectados ao tipo de dados de barras porque a condição é avaliada como verdadeira ou falsa. Se uma condição for avaliada como true, o bloco de código relacionado a ela é executado. Caso contrário, nada aconteceu ou se encontrar o bloco de código associado com o valor falso é executado. Isso é usado em qualquer exemplo em que você deseja separar para funcionalidades com base em uma condição. Digamos que eu queira definir o tamanho da minha forma com base na posição no eixo X relativa
à linha central. Se estiver do lado esquerdo, eu queria ser pequeno, e se estiver do lado direito, eu queria ser grande. Isso, no
entanto,
não é entanto, muito realista, porque na vida real podemos ter mais de duas condições que também podem ser feitas no processamento usando duas ou mais condições diferentes que podem ser avaliadas como verdadeiras em um determinado tempo da vida dos programas vendo a sintaxe fará mais sentido aqui. Para escrever uma instrução condicional, você precisa da palavra-chave se seguido por dois parênteses, continue a condição, por exemplo, X é maior que 10. Em seguida, para chaves em torno do código que você precisa executar irá dizer tamanho será cinco da variável X é realmente maior que 10. Então o código será executado. Caso contrário, nada acontecerá a menos que definamos outra declaração. A instrução else é executada, se a condição for falsa. Agora, o que acontece se precisarmos dessas múltiplas condições? Bem, acabamos de adicionar mais. Se com parênteses seguindo a palavra-chave Theis, vamos agora fazer a condição X é maior do que 30 e vamos fazer o tamanho 10. Sabe se a variável X é maior que 10? Temos o tamanho de cinco. Caso contrário, o machado é maior do que 30 do que os tamanhos. 10. E por último, se nenhuma dessas condições fosse verdadeira, então o bloco mais é executado. Você pode ter como muitos mais se declarações como você precisa após a sua primeira instrução F, e você sempre pode eliminar a declaração L final se você não tem um uso para ele. Esta informação livre Há outra maneira de escrever ALS condição usando uma instrução switch. Eu não vou entrar nele porque o F condicional ao processamento é suficiente, mas sinta-se livre para verificar na página de documentação de processamento. Vamos agora para o nosso exemplo condicional
16. Exemplo: condicionais: neste exemplo condicional, vamos aprender um pouco mais sobre condicional. Então nós aprendemos na seção de explicação só porque há muito mais do que eu quero
falar sobre que precisava de um pouco mais de um exemplo em uma demonstração. E eu só vou demonstrar o f condicional só porque switch é algo que você pode ir para a documentação e entender uma vez que você aprender tudo sobre o se condicional, principalmente porque eu só uso, se condicional, a maioria do tempo. Mesmo se você entrar no código de outras pessoas, você vai ver se a condição ALS mais do que você está indo para ver instruções switch. No Python, por exemplo, não
há nem uma instrução switch. Há apenas e se condicional, hum, mas sim, sentir medo de usá-lo se você sentir que é melhor para você ler então e se condicional , uma vez que você entender como usar tudo isso para controlar o fluxo, o que quer que vai mostrar, vou cobrir algumas coisas que você vai ver muito no casaco das pessoas, e eu vou falar sobre um exemplo que eu usei em bilhões e taxa de leitura sobre isso porque há coisas que eu vou corrigir nesse exemplo. Então vamos começar com isso. Em um exemplo anterior, eu usei barras e eu fiz falso. E então aqui,
eu disse, eu disse, se a escala de cinza é igual a verdade, então faça algo de outra forma, faça outra coisa. Então foi isso que aprendemos sobre isso. Condição ALS. Hum, eu não falei sobre os dois sinais de igual antes, hum ,
nesta classe, mas nós vamos falar sobre isso dentro da demonstração porque é muito mais fácil
vê-lo em ação do que apenas vê-lo em um explicação com alguma animação. Ok, então na maioria das vezes, você não vai ver, especialmente com pessoas que são mais experientes em programação, você não vai ver isso. Estes dois sinais de igual se o valor que vamos verificar é um 1.000.000.000
tipos de dados , então seja verdadeiro ou falso, na maioria das vezes, você vai ver o código assim se escala cinza. Então isso basicamente significa se escala de cinza é igual a verdadeiro. Ah, mas é muito redundante escrever em escala de cinza igual a verdadeiro, o código vai funcionar. Mas você também pode fazê-lo dessa maneira, porque se isso tudo é verdade. Portanto, se a escala de cinza for igual ao verdadeiro trabalho Onley, o código dentro da condição só será executado se a escala de cinza for igual a dois. Verdadeiro. Então, se isso é verdade, então por que caminhar? Se for igual a verdadeiro uma vez, é porque o valor já é verdadeiro. Então isso vai ser executado para que não tenhamos que dizer escala de cinza é igual a dois true ou se ele é igual a padrões. Agora, se você quiser verificar se é igual a duas quedas, você pode apenas fazer um ponto de exclamação. Um ponto de exclamação significa que não é assim, se não escala de cinza, o que significa o oposto do que Gail é agora. Então agora é verdade. Então aqui vai ser falso. Então, se isso foi falso, isso vai ser verdade porque está dizendo que se não é o valor aqui, então se não é falso, então faça algo aqui. É um pouco confuso no começo uma vez que você começa a aprender isso, mas apenas entenda que são dois valores e você pode facilmente lembrar isso no futuro. Como você pratica na maioria das vezes, eu não tenho notícias. Não, a não ser que eu não vá usar outro bloco. Então, se eu não usar isso. Talvez eu vá usar não porque eu só estou caminhando se não for. E é isso que eu quero que um código execute e eu não me importo com nenhuma outra coisa, mas sim, normalmente eu faria se algo fosse verdade. Então, basta colocar a variável e ela vai verificar para mim se é verdadeira ou falsa olhando para o Vale. Então agora, se Gray escala Então ele está procurando para ser verdade para isso funcionar, mas agora é falso. Então isso vai ser falso e não vai correr, vamos saber em vez de milho cai, verificar se há valores. Então vamos fazer dois em culturas, e eu vou chamá-lo de X e Y. Vou colocá-los em duas linhas diferentes só porque eu vou dar valor a eles lá em cima. Então vamos fazer este 10 por exemplo, e fazer este cinco porque eu não sei como podemos verificar se X é igual ou maior do que
porque por , por exemplo, vamos usar esses operadores de comparação para rastrear isso? Então é exatamente o que aprendemos na aula de matemática. Vamos fazer X. Mas em vez de escrever um igual normal, porque na programação, um sinal de igual é um tempo de atribuição. Então não vai funcionar com essa expressão. Se queremos uma pista de algo é igual a algo. Então, se eu fizer isso, então ele está pensando como se eu estou atribuindo o porquê para a variável X e ele vai me dar a incompatibilidade de
tipo
que inteiros, que é X, não corresponde com barras porque dentro de e se condicional, você tem que ter um ouro e para ter um booleano, você vai ter que ser igual a fim de verificar se algo é igual a algo. Agora, isso é na verdade um condicional. Então o X é igual ao dedo. Por que, não
é assim que vai me dar um falso, então o que quer que esteja aqui vai correr e a pista nós vamos apenas imprimir a comunidade linha, correto. E então eu vou fazer você errado, e vamos ver que é errado porque X não é realmente igual a cinco. Então, se eu mudar isso para 10 agora, vamos corrigir. E a razão pela qual isso está imprimindo muito é porque a função de desenho está em loop, então podemos parar esse loop de colocação apenas por causa desta demonstração. OK, agora eu vou devolver isso para cinco, vai voltar para o Ron. Mas desta vez vou verificar se não é igual a Julho. Então eu vou verificar se X não é igual dedo do pé. Por quê? Usando o operador não na frente do igual Agora ele só precisa de um igual porque não está presente. E então esta é na verdade uma condição que vai produzir valores booleanos ou verdadeiro ou falso, e não é igual, então vai nos dar o correto. E isso está correto. Agora há outros operadores de comparação, como Maior que vai me dar correto, porque X é maior do que nós também vamos fazer maior ou igual. E vai ser correto só porque maior ou igual significa maior ou igual . Qualquer um desses dois será suficiente. E então se eu verificar também menos do que e há também menos que e igual a verificar menos do que vai nos dar errado, porque X é definitivamente não menor que e, em seguida, menor ou igual. E vai me dar errado porque não é. Não é nenhum dos dois ou, uh, se são 10, então ele vai me dar o correto só porque um desses dois está correto Então X é igual dedo do pé. Por quê? Não é menos do que, mas é igual. Então, ele vai me dar correto. Agora, enquanto eu estou falando, eu disse ou várias vezes Então eu vou introduzir outra variável chamada Z, e isso é para demonstrar diferentes operadores que podemos usar dentro de Zoe condicional. Bem, eu vou dar um valor arbitrário, então aqui, eu vou dar para e eu vou verificar se X é igual a y e então eu vou usar esse operador estranho usando duas linhas retas. Então, no meu teclado, você confinou estes com a barra invertida. Então, com uma mudança de barra de trás para frente, nós vamos ter um desses. Então, dois destes vai nos dar ou Ok, Então o que eu estou dizendo agora é se x é igual a y. Então, se X é igual a Grable, por que ou X é maior que Z, então execute isso assim ou é muito indulgente. Vai procurar por apenas um valor verdadeiro. Então, se qualquer uma dessas condições for verdade, isso vai dar certo. Ambas as condições eram verdadeiras. Mas e se eu fizer? X é menos tansy. Ele ainda vai me dar correto porque X é igual a y e isso é verdade. Então eu estou dizendo ou que esta condição é verdadeira ou esta condição é verdadeira. Se qualquer um deles é Drew, então me dê o correto. No entanto, se eu colocar aqui e em vez de ou e este ar para Amper Sands, isso vai me dar errado. A razão para isso é porque o 1% ou o operador e é muito mais rigoroso. Está a dizer que não vou ser verdade a não ser que tenha desenhado um verdadeiro. Então, se isso é verdade e isso é verdade, então eu vou estar correto. Então é muito rigoroso. Então, se um desses dois valores é falso, então a cabra inteira não vai ser executado dentro de que se condições. Então ele vai para a outra caminhada se houver outro bloco imediatamente. Agora, se eu mudar isso para verdadeiro e eu correr, isso vai me dar certo, porque agora está feliz. Como isso é verdade e a irmã novamente, isso pode ser confuso para alguns de vocês começando. Mas enquanto você pratica, você vai ver que é bom senso e que é muito fácil de entender. OK, então agora vamos fazer outra coisa. Se agora vamos mudar este exemplo um pouco porque correto e errado são apenas dois valores. Não quero que isto seja condicional de três quarteirões. Então vou dizer “iguais”. E então se X é maior do que por que eu vou imprimir maior ou melhor, X é maior. E então aqui, eu vou apenas dizer, por que é maior. Então agora se X é igual, Teoh, por que nós vamos ficar iguais, e então se X é maior, nós vamos obter X é maior. E agora, se o porquê é maior, vamos ficar mais sábios. Então é basicamente assim que usar o outro com condicional é muito simples. Uma vez que você entender um f outro bloco, você pode entender mais se facilmente, porque ele vai no meio e você pode ter como muitos como você quer que você também pode, em vez de imprimir. Eu sei que eu introduzi impressão Len antes de eu realmente falar sobre isso, mas você também pode fazer texto para todos estes. Então, em vez de imprimir para o conselho aqui, você pode digitar dentro do seu esboço eu vou colocá-lo no meio da tela antes de executá-lo. Vamos ter que mudar o dedo do pé de preenchimento preto porque a sensação padrão é branco e Texas não
vai aparecer porque leva do valor da pílula. E agora diz “ Por que é maior e vamos mudar y “Diz que X é maior agora e então finalmente, vai dizer igual e bem, isso é tudo que você precisa saber sobre. Se a condição als a seguir, vamos falar sobre loops e o que podemos fazer com loops.
17. Loops: neste módulo vai falar sobre o meu conceito favorito e loops de programação não
influenciá-lo a escolher um favorito, mas eu acredito que uma declaração nos ajudando a evitar redundância enquanto adicionar à obra de arte é incrível. Loops fazem maravilhas por conta própria, mas eles também são ótimos. Se combinado com um aumento, podemos percorrer uma matriz usando a variável aeração em loops como a posição dos elementos de
matrizes, permitindo-nos percorrer toda a matriz. Podemos usar loops para desenhar uma infinidade de formas, obter acesso a cada elemento na matriz ou até mesmo agir a uma matriz para a sintaxe. Existem duas maneiras de escrever loops com base no que você precisa. Se você sabe quantas rações você vai ter que um loop de quatro é perfeito. No entanto, se você estiver olhando para loop até que uma condição seja verdadeira, não saber o número exato de repetições do que um loop while é o caminho a seguir. Para um loop de quatro, você precisa da palavra chave quatro, seguida por parênteses contendo três componentes, uma inicialização, uma condição e um er incremental. O que quer que vá para dentro, as chaves que vem depois serão repetidas quantas vezes forem especificadas entre parênteses . A variável de loop for pode ser um inteiro ou à tona, mas como mencionamos anteriormente, entra e flutua. Diferentes. As indústrias são destinadas à contabilidade. Portanto, se você estiver usando os loops, os elementos da matriz de acesso, por exemplo, do que suas variáveis inicializadas tem que ser do tipo em títulos. Vamos ver agora como definir um loop while. Para isso, você também precisará de três componentes importantes na inicialização. Em seguida, na próxima linha, a palavra-chave enquanto seguido pelos parênteses contendo a condição e, finalmente, bloco de código
insider. Depois que tudo é executado, adicionamos o er incremental. Um problema que você pode encontrar com mais frequência em enquanto loops do que em quatro loops é um
loop infinito . Isso pode travar seu software. Loops infinitos acontecem quando uma condição nunca é atendida, e isso ocorre quando você tem um incremental sua variável ou, se você estiver certo, a condição errada. É hora de um mini exemplo
18. Exemplo: loops: Agora que vamos falar sobre loops, vamos revisitar ou correr. Um dos exemplos que criamos em um aumento são as posições, Ray. Então eu vou recriar que se você quiser posições de valores flutuantes, então vamos criar uma matriz chamada Float e os colchetes significam matriz. E depois vou chamar-lhe exposições. Vou dar-lhe cinco posições. Alguns só podem dizer o seu flutuador, então inicializá-lo com cinco células vazias. Agora, última vez que dissemos, se você quiser incluir valores ou gerar valores dentro de exposições, enfraquecer, basta dizer exposições. E então 0123 e quatro Então cinco vales. Mas isso não faz nenhum sentido. Porque e se eu tiver 100 valores aqui? Não vou fazer de 0 a 100. Quero dizer, de 0 a 5 já é um rigoroso. Em vez disso, eu posso apenas fazer um quatro viveu dentro de quatro loop. Dissemos que começaríamos com um Isar inicial. Inicialmente, havia basicamente uma variável, então qualquer variável geralmente cria fora de suas funções aqui, você pode criar aqui na maioria das vezes nós vamos ver as pessoas usando I e J. Eu uso I para o meu primeiro loop para. Às vezes, se você aninhar para loops, então você usa um I um j porque você não pode aninhar com a mesma variável. Então eu vou apenas fazer e eu olho para o índice porque ele armazena o índice de para o loop for e então eu vou inicializá-lo com zero. Então este é o meu Isar inicial, e então eu tenho um problema. Nós já sabemos como ler as condições do nosso último trator e a maioria deste alto . E ao usá-lo com um aumento, você vai ver a condição verificando se o índice é menos banir o comprimento dos raios. Vou escrever isso e depois explico menos do que exposições. E eu vou usar a propriedade para um aumento chamado comprimento. E se você notar no meio, eu sempre uso cínico e a razão pela qual eu usei para mim Coghlan e eu usei isso durante todo o programa. Muito é acabar com uma linha de código. Então, se você não fizer e essa linha de código com um cínico e você vai receber um erro porque seu programa não vai saber onde popa, onde terminar, então aqui estou eu dizendo, OK, eu estou farto disso, Então eu vou terminar com um ponto-e-vírgula. Então o mesmo acontece aqui dentro de quatro loops. Vou terminar cada seção do ponto e vírgula porque eu queria caminhar por isso sozinho e depois por isso sozinho e pela última seção do amor. E então eu vou incrementar antes de eu incrementar. Quando eu explicar este estrangeiro, a condição aqui é verificar o I se é menor do que as exposições que comprimento. Então agora o comprimento aqui é cinco. Por isso, está a verificar se tenho menos de cinco anos. Então, desde que seja menor que cinco, o valor de incremento vai subir onde o incremento vai fazer meu olho aqui, subir o valor de I. Então vai ser de 0 a 1 a 2 a 3 a 4 até atingir um menos de cinco. Assim que chegar a um a menos de cinco, então vai parar. E, em seguida, o er incremental que escrevi no meu vídeo explicação eu mais, se você se lembrar de nossos inteiros e floats exemplo, nós incremental X assim. Então este é um er incremental que implementamos o valor antigo de X por um, e começamos dentro da variável antiga. Agora isso poderia ser feito de outra maneira. Isso também pode ser feito dessa maneira. Então isso é dizer incrementos X por um e começou dentro de X. Esta é uma abreviação. Há também menos menos, então é realmente decry Menting por um. E então, se você quiser incrementar por valor diferente, porque isso é algo que também fizemos dentro de seus inteiros e flutuadores Exemplo, que é como Então ele fez doce. E isso basicamente significa a mesma coisa. X incremental fez por três e enfraquecer fazer desvantagens bem, e isso vai decry significou por três. Então, este ar apenas mãos curtas e torna o seu código muito mais limpo em vez de escrever este como para que você possa apenas lê-lo como para que seja muito mais simples. É mais fácil de entender, e é melhor olhar em seu código. Então é basicamente isso que estou fazendo aqui. Estou implementando por um. Eu também posso fazer mais igual livre para que eu possa incrementar a cada três valores. Ele pode fazer isso se você quiser criar uma grade, eu não necessariamente criar uma grande dessa maneira. Mas eu vi pessoas que criaram grades verificando se é se o olho é menor que a largura e, em seguida, como eles vão os incrementos pelas células com eso, cabe a você como você quer usar isso. Eu normalmente incremento por um, e então eu faço meus cálculos dentro do meu loop for. Vamos apenas incrementar por um agora. E então eu vou fechar os parênteses e eu vou abrir minhas chaves para escrever meu casaco aqui dentro porque agora nós vamos fazer exatamente o que fizemos antes de usar as exposições zero, um, dois e três. Mas em vez disso, vou apenas fazer exposições e dentro dos parênteses, vou colocar o índice e depois vou falar sobre você. Digamos que eu queira dar um valor aleatório, talvez de zero a tecnologia. E vamos também imprimir exposições apenas para ver os valores dentro dela. Você pode ver que ele lhe dá exatamente o que fizemos antes quando atribuímos um valor para a posição em 01 Então 123 e quatro. Então está dizendo que agora, dentro da matriz de exposições na posição zero. Temos esse valor aleatório na Posição 1. Nós temos esse valor. Então nós temos esta flutuando apenas três e quatro e assim por diante, então nós sabemos que está funcionando. Mas como é que está realmente a funcionar? Então um para Loop basicamente leva este índice do que verifica se é menor do que as exposições que comprimento. Então zero é definitivamente menor que cinco porque o comprimento é o tamanho desta matriz, e então ele vai incrementar por um. Então agora é zero mais um. Então agora este valor, na verdade um. Agora, na próxima geração, está indo Teoh, verifique com a condição novamente. Não, é 11 ainda é menor que cinco, então ele vai incrementar e antes de incrementar ou cada vez em incrementos. Na verdade, fazer os cálculos e aqui ou executar o bloco dentro de um loop for na primeira oração teve o valor de zero. Então Exposição zero igual ao valor aleatório de 0 a 10. E então, quando se tornou um, era um aqui. Então, exposições na posição um vai ser outro valor aleatório é que eu também fiz, digamos, 10 do que todos eles vão ser 10. Então todos eles vão ser valores flutuantes de 10 e notaram que há um 100,0 aqui só porque mesmo que eu tenha entrado em um inteiro só porque este é um flutuador, todos esses ar vão parecer flutuadores. Então, se eu mudar isso em um inteiro, então eles vão estar em fotos. Mas agora não podemos realmente inserir nenhum valor de Brandon a não ser em torno deles. Então, se eu fizer 0 a 10 não vai aprender porque diz incompatibilidade de tipo, vez que aleatório retorna um valor flutuante. Mas se eu arredondá-lo e isso é apenas uma equação matemática muito simples que costumávamos usar na escola, nós costumávamos arredondar números, então sabemos como executá-los. Então está indo para os números para mim. E então eles se tornaram relações sexuais agora, então isso vai me deixar colocar dentro de antidrogas. Isso não é muito importante agora, mas só precisa saber sobre quatro loops é que você pode usá-los para alimentar para elevar valores. OK, agora, vamos fazer o mesmo exemplo exato usando um loop while, eu vou deixar o loop for agora. É e eu vou devolver isso para você. Viveu? Não, vou comentar isso. Ok, então, você sabe, em um loop de tempo, nós dissemos que nós teríamos que ter um Isar inicial de antemão. Então eu vou apenas criar o Isar inicial aqui. Eu vou chamá-lo e eu para o índice novamente e, em seguida, vai escrever o loop while. Então, dentro do loop while, você só tem a condição. E a condição para nós aqui vai ser novamente olhos menos do que as
coisas de exposição e, em seguida, dentro do bloco, eu vou fazer o que eu fiz dentro do loop for. E depois disso, eu vou para incrementos I Então cada vez que vai olhar em, eu aqui vai ver o valor vai verificar se é menor do que
as exposições que comprimento a direita e então ele vai fazer isso se é menos assim, se isso é verdade, ainda
é menos de cinco. Então ele vai fazer isso e, em seguida, ele vai para incrementos. Se você não incrementar, isso vai ser um loop infinito porque isso sempre será zero. Nunca vai subir para cinco. Então, a parada local para que ele vai executar infinitamente e que pode quebrar o seu programa. Pode congelar o seu computador. Não sei o que acontece. Na maioria das vezes, quando isso aconteceu comigo, eu poderia parar usando o botão de parada aqui. Então, se não funcionar, então primeiro processamento rápido e tudo ficará bem. Mas, no entanto, lembre-se que você precisa do incremento dentro daqui e você precisa da condição. Teoh, em algum ponto do programa, torna-se falso, então ele pára. Então, não, isso vai fazer exatamente o que os quatro fizeram em loop antes e vai nos dar um
valor aleatório ,
um valor flutuante aleatório de 0 a 10 posições finais de 0 a 4 dentro da matriz. Então isso é exatamente a mesma coisa que o loop for. Eu não necessariamente usar um loop while com um aumento só porque, ah, por um tempo loop, é melhor usá-lo com condições que você não sabe quando vão ser atendidas. Digamos que você tenha andador aleatório, e assim que o Walker aleatório se move de um lado das telas ou de um lado da tela para outro lado do seu campus. Então você queria parar. Talvez onde você quer que esse círculo pare de se mover ou pare de colorir sua tela lá por um tempo. Loop é ótimo porque como o movimento é aleatório, você não sabe o que ele vai cruzar essa linha. Mas se você quer gerar posições, ou se você quer fazer algo onde você sabe a quantidade de tempo ou a quantidade de repetições, então um quatro amor é definitivamente o que você precisa novamente. Depende de quais designs você está criando. O que você está procurando na arte generativa? E baseado nisso, você vai escolher se você precisa de um loop for ou um loop while. Agora que falamos sobre um loop e repetição de código eficientemente em seguida, você vai aprender sobre funções e como criar métodos reutilizáveis ou blocos de
código utilizáveis para evitar redundância.
19. Funções: Agora vamos falar sobre evitar redundância em nosso casaco. A tarefa e programação mais tediosas é repetir as mesmas linhas de código sempre que você precisar delas. E se você mais tarde quiser uma mudança de valor, você tem que mudá-lo em todos esses lugares cada vez que você pode evitar toda essa bagunça
criando uma função. Funções são blocos de código reutilizável que executam tarefas relacionadas e às vezes até retornam um valor que ele pode armazenar em uma variável para uso posterior. Eu uso funções para uma formatação de texto, números
calculados ou fazer formas personalizadas. Digamos que eu queira criar um rosto sorridente ou vários rostos sorridentes. Isso exigirá três círculos, um grande para o rosto e dois pequenos para os olhos e, mais importante, uma arca para o sorriso. Eu posso colocar tudo isso dentro de uma função, chamá-lo de Smiley e chamá-lo de Zeman e vezes como eu quiser. Isso é eficiência. Vamos explorar a sintaxe de uma função com um exemplo muito mais simples. Eu quero uma função que leva em um raio e retorna um diâmetro vai chamar este
diâmetro função . Funções também começam com uma palavra-chave como variáveis. A palavra-chave, no entanto, indica o tipo do valor de retorno. Para o nosso exemplo smiley, a palavra-chave seria nula, uma vez que não retorna nada. Mas para este exemplo de diâmetro, o valor de retorno será flutuado. Uma vez que nossa função assume um valor, temos que definir um parâmetro. Vamos chamá-lo de raio e dar-lhe um tipo de carros alegóricos. Este é um cálculo simples. Um diâmetro é duas vezes o raio enfraquecer. Armazene esses dados em uma variável flutuante dentro da função e, em
seguida, retorná-lo. Mas uma vez que é um pequeno exemplo, irá retornar o cálculo diretamente. Usamos a palavra-chave de retorno antes de um retorno. Valores agora para usar disfunção, nós chamamos usando seu nome seguido por parênteses. Uma vez que esta função registra uma entrada, temos que passar em um argumento. Farei um valor de 10 para enfraquecer o raio. Armazene o valor de retorno em uma variável, ou podemos usá-lo diretamente em seu casaco. Eu acho que é hora de um exemplo para entender isso melhor
20. Exemplo: funções: Está na hora das funções. Exemplo. Como eu expliquei no vídeo de explicação, uma função armazena um bloco de código em um método razoável que você pode chamar em qualquer lugar ao longo do programa têm sido usando o tamanho e função de fundo e essas
funções de ar que são nativas para processamento. Então eles já foram criados com processamento, então não precisamos recriá-los. No entanto, às vezes há necessidade de funções ou para você criar suas próprias funções. No exemplo de vídeo, falei sobre criar um rosto sorridente e salvá-lo dentro de uma função. Talvez possamos recriar esse exemplo para ver como funciona. Para criar funções, precisamos das palavras-chave do tipo de retorno. Então, para um exemplo sorridente, nós não precisamos retornar nada que eu vou apenas usar evite, o que significa vazio, então ele não necessariamente retorna nada. E essa é a palavra-chave que você usa para isso. Como você pode ver aqui, evite é usado, retire e configure porque eles não retornam nada, e agora eu vou chamá-lo de Smiley, e nós temos os parênteses onde podemos ter parâmetros e, em seguida, as chaves onde nós pode ter o bloco de código que queremos executar e dentro do nosso rosto smiley. Eu não vou entrar na função Arca ou na forma da arca só porque é um pouco
complicado demais para este exemplo. Mas eu vou apenas criar um círculo amarelo e dois pequenos círculos, e eu vou colorir eles também. Então eu vou dar a isso um companheiro de amarelo, e ele está ficando no centro sobre a tela, e eu vou dar-lhe um tamanho de 200 desta vez. E então eu vou criar um Phil diferente para os outros dois círculos, que serão os olhos que eu vou dar a eles um Phyllis Black. Eu vou criar dois círculos diferentes e eu vou colocar um de 34 agora e vamos ver onde isso está posicionado e nós podemos consertá-lo mais tarde, e eles vão ter um tamanho de 20. Então vamos ver onde está. Certo, não
vamos ver nada. A razão para isso é porque nós não chamamos função, então nós apenas definimos. Este é um erro que eu vi tantas vezes ensinando programação. Ah, muitos dos alunos costumavam esquecer de chamar a função, e eles esperam que seu código funcione. Mas o que eles precisam fazer é chamar a função. Eu vou primeiro parar a função draw de looping. Então eu vou apenas usar a função sem olhar e, em seguida, dentro do sorteio porque eles não querem que ele desenhe um monte de círculos em cima do outro. Em seguida, dentro da função de desenho, eu vou Teoh, chamar Smiley. Então, como você chama uma função é apenas chamando seu nome e, em seguida, ter que parênteses. Já que não temos parâmetros aqui, não
precisaremos de argumentos aqui. Vou executá-lo agora podemos ver que está muito fora. Então eu não deveria estar aqui. Então eu sei que o centro 202 102 100 está aqui. E como sou uma pessoa visual, é muito mais fácil para mim ver algo na minha frente só para entender o posicionamento dele. Posso visualizá-lo, mas pode levar mais tempo para mim. É mais fácil para mim apenas vê-lo, então eu vou mudar isso para cá, que saibamos que são 200 por aqui, então eu só precisava ter menos de 200, o tamanho é 200. Então eu sei que o raio do tamanho do círculo é 200. Então eu sei que o raio é 100. Então nós sabemos que eu posso mover para trás talvez 30 pixels de 200 para 30 pixels. Então vai ser 170 para ambos, e deve funcionar. Agora eu vou ter outro círculo, e desta vez o porquê vai ser o mesmo porque eles vão ser paralelos um ao outro. Mas, em seguida, os outros olhos vão espelhar este I no eixo X. Então, desta vez, vão ser 2330. Mas por que vai ser 170 agora? Temos dois olhos. Ótima. Então isso é basicamente o que uma função é. Agora você pode criar Aziz muitos rostos smiley como você quer dentro do seu para guindaste, mas com um problema. Então o problema agora é que cada carinha sorridente vai estar na mesma posição. A razão para isso é porque não temos parâmetros. Então não estamos chamando isso com posicionamento diferente. Podemos mudar isso adicionando parâmetros aqui. Então, se eu flutuar X e flutuar por que, Isto é basicamente como nós criamos parâmetros. Você acabou de definir variáveis sem valores, e então você usá-los aqui, e isso vai nos dar um erro aqui na chamada porque ele espera parâmetros. Então precisamos inserir argumentos. E a propósito, na maioria das vezes você vai ouvir as pessoas falar sobre parâmetros quando eles estão definindo e argumentos quando eles estão chamando a função. Ok, agora, nós criamos nossos parâmetros, mas precisamos usá-los. Então, dentro deste círculo, em vez de usar 202 100 que são valores estáticos, eu vou substituí-los com os valores flutuantes que eu criei ou os parâmetros que são criados. Então eu vou apenas fazer X e você sabe que isso vai funcionar perfeitamente para o círculo amarelo. Mas como posso fazer isso pelos olhos? Se você se lembra, eu disse da posição do meio, eu vou mover para a esquerda 30 pixels e, em seguida, para cima 30 pixels para criar o primeiro I Então nós
vamos fazer a mesma coisa. Então eu sei que qualquer que seja essa posição, eu sei que os olhos dando para ser 30 pixels a menos no eixo X e 30 pixels a menos no
eixo Y. E então o outro será 30 pixels a mais e 30 pixels a menos. Ok, então isso vai ser X menos 30 e isso é bom, vai ser por que menos 30. Isto vai ser vinho menos 30. E este é o espelho, por isso vai ser X mais 30. E agora temos que corrigir o erro e adicionar nossos argumentos esta noite. Quero que o 1º 1 seja um 202 100. Então vai ser o grande círculo vai estar nessa posição, que vai ser o centro. Mas quero que o outro esteja na posição 00. Legal. Agora temos que sorrir. Vamos realmente mover este aqui para que você possa ver os olhos que estão trabalhando para ambos. Então eu vou fazer 100 em 100 e eles podem se sobrepor. Isso está tudo bem. Legal. Agora temos que sorrir rostos, e ambos têm os olhos na posição correta. E agora você pode ter tantos sorrisos quanto ele quiser. E agora, sabendo sobre loops, podemos criar muitos smileys gerando posicionamento Brandon para eles, e você pode criar uma página inteira de rostos smiley. E se você for até a documentação e verificar ah, a forma da Arca e como ela é criada, você será capaz de entender melhor essa documentação agora porque você sabe tudo sobre argumentos e como eles são realmente usados porque você criou sua própria função. Não, vamos criar outra função que retorna sobre este tempo. Então eu vou deixar apenas os 100 pixels. Miley, você sabe, eu só tenho isso porque eu quero imprimir algo aqui que eu estou retornando da outra função lá em criar. Você sabe, vamos criar uma função de anúncio, que é a função mais simples que você pode criar com o valor de retorno. Agora, uma função de anúncio irá adicionar dois números. Vai ser uma função muito, muito simples. Está indo, Teoh acrescenta um acidente. Por que valorizar as entradas do usuário ou o que você quer e colocar dentro do seu programa, e então ele vai retornar informações desses dois, ele pode ser um intruso ou flutuador. Cabe a você como você quer criar essa função. Vou apenas criar um inteiro porque é muito mais simples de lidar com isso. Então eu vou fazer o tipo de retorno. E então não, a palavra-chave é evitar mais porque isso vai retornar algo, e eu vou dizer e e eu vou chamá-lo e e e os parênteses e, em seguida, outros colchetes. Agora, em vez de ter parâmetros vazios ou parênteses vazias, eu vou dar a ele um Valor X. E o Beco Branco. Não, isso vai ser um pouco irritado só porque este método deve retornar um resultado do tipo de entrevista e ainda não temos um valor de retorno aqui. Como eu disse no meu vídeo de explicação, eu posso criar uma variável aqui dentro que chamado alguns e vamos criar isso primeiro ou ele pode devolvê-lo diretamente. E como este é um pequeno exemplo, nós também vamos devolvê-lo diretamente. Então eu vou apenas fazer isso termina. Vou chamá-lo de alguns, e então eu vou fazer X mais y. então quaisquer valores dentro de X e quaisquer valores dentro de por que eu quero. Alguns desses e depois posso devolver alguns. Então agora está feliz por não haver mais erros. E está devolvendo este filho. Vou mostrar-vos como isto vai funcionar com isto, e depois vou mudá-lo para devolver directamente os outros. Então vamos realmente fazer isso dentro da função de textos que usamos antes. E eu vou colocar isso na Posição 200. O que quer que esteja aqui e depois vou ligar para o anúncio. Você pode dar o valor que quiser. Você só faz 10 e 5. E se eu estiver correto, atraído retornou 15. Certo? E está retornando o valor. 15 concedem tamanho de texto incremental um pouco apenas para que você possa ver claramente o que está escrito. Ok, então agora são 15. E vamos ver se eu quero retornar os valores diretamente. Então eu vou apenas devolver isso diretamente porque não há necessidade de adicionar mais variáveis
à memória quando você não precisa. E se eu executar, vai ser 15. Então sabemos que tudo está funcionando muito bem. Agora ele pode manter seu casaco limpo, criando funções e chamando-os sempre que você precisar delas.
21. Cursos e objetos: classes e objetos são a base da programação orientada a objetos perfeita para quando você deseja criar um modelo para um novo objeto que não existe por padrão. Um dos exemplos mais conhecidos é a classe de veículos. Digamos que queremos criar um blueprint para criar objetos de veículo. Podemos escrever uma classe chamada Vehicle e começar a pensar sobre quais propriedades e ações todos os veículos têm. Por exemplo, todos
eles devem ter uma posição inicial. Todos se movem. Todos eles têm um tipo de motor e assim por diante. Isso é ótimo. Já temos um modelo que podemos personalizar com base no tipo de veículo que estavam criando . No entanto, faz mais sentido aqui olhar para um tópico mais generativo relacionado à arte. Vamos olhar para um andador aleatório, e enquanto estamos nisso, vamos explorar a sintaxe para fazer classes e objetos. Cada classe começa com uma palavra-chave classe, seguido por um nome, por exemplo, uma chamá-lo walker. Ao contrário das funções, um nome de classe é seguido diretamente com chaves em oposição a parênteses porque eles vêm mais tarde ao criar o construtor. O construtor é o nome da classe, seguido por parênteses em que podemos adicionar parâmetros para permitir a entrada, se necessário. Agora é hora de algumas propriedades e métodos. Uma propriedade é uma variável em um método é uma função, mas a terminologia é diferente porque eles pertencem a uma classe. Então já sabemos como criá-los. Basta saber que as propriedades vão antes do construtor e os métodos vão depois agora para criar uma instância desta classe, usamos a nova classe que criamos como usamos tipos de dados para variáveis continuando com seu exemplo
Walker. É assim que nossa instância se parecerá. Também podemos criar uma matriz de objetos se adicionarmos colchetes após a palavra-chave Walker, como agora para realmente criar a instância, atribuímos essa variável com o tipo Walker para o valor de new walker. Para isso, o construtor está vazio. Mas se definirmos parâmetros, temos que passar. Argumentos como fizemos com funções e exemplo nos ajudarão a obter mais prática com classes e objetos
22. Exemplo: cursos e objetos: este exemplo vai ser apenas eu demonstrando como classes ar usado ou como eu pessoalmente uso aulas. Eu vou criá-los no mesmo arquivo porque vamos falar sobre vários arquivos mais tarde, e eu não quero incorporar muitas coisas que eu não falei ainda. Ok, antes de começar a passar pelo exemplo eu quero falar sobre por que usaria uma classe Às vezes, em vez de apenas usar as formas regulares ou usar uma matriz ou um loop for é uma lição. Quero criar um círculo na página, mas também quero movê-lo. Então todo o programa é sobre animar esses. Talvez seja uma imagem estática. No final, eu quero criar fazendo essas formas se moverem e desenhando na tela. Ou talvez eu só quero que eles se movam porque eu quero compartilhar a animação em si. Então um círculo, se eu quiser dirigi-lo, tem uma posição X e Y, e tem tamanho. Mas se eu quiser movê-lo, a única maneira de fazer isso é usar variáveis e incremental o sotaque y baseado no que eu quiser fazer com. Mas agora Se eu quiser criar uma matriz de círculos para movê-los através da tela, eu não necessariamente tenho um método que os moveria. Não tenho um método que atualize a tela toda vez que houve um movimento ou essas formas estão se movendo. Então eu vou apenas criar uma sala de aula como o processo de pensamento faz. Você sabe disso. Ok. Você precisa criar uma classe porque não há nenhum objeto já existente que tenha todos esses recursos que você precisa porque todos os tipos de dados que falamos são realmente objetos que têm classes. Assim, os métodos que são usados com a string, por exemplo, são todos definidos dentro da classe string. Então você não fez a mesma coisa. Então eu vou criar um círculo de ouro classe, e nós vamos ter propriedades quatro movimento, e para o tamanho e até mesmo para a cor, vamos começar lendo a classe, vamos apenas chamá-la de círculo. E dissemos que não tem parênteses aqui. Uma classe tem um construtor dentro dela. É como a função da classe. Então, parece o mesmo que uma função, mas sem nenhuma palavra-chave antes disso. Então é o mesmo nome e, em seguida, os parênteses,
e, em seguida, dentro dele, você inicializou variáveis únicas para algumas outras linguagens. É chamado porque é um Isar inicial. Então você inicializa tudo o que precisa aqui e antes dele. Nós dissemos que as propriedades vão aqui, que é o mesmo que variável diferem criado se você criá-los antes de todas as funções que temos. Então eu vou fazer o ex flutuante e por quê? E então eu também vou dar a eles o tamanho que pode ser. Todos eles podem ter o mesmo tamanho, ou eles podem ter tamanhos aleatórios. Cabe a você como queremos criá-los. Isso é apenas criar o modelo. O círculo vai ser o modelo que vamos criar muitos círculos fora de. Então esta é basicamente a forma do círculo ou como tem sido um olhar ou que tipo de propriedades ele vai metade. E então eu também vou dar uma cor, então vamos fazer aleatoriamente. Sei que não introduzimos aleatoriedade, mas esta é uma das coisas que vou usar aqui só para mostrar como eu normalmente usaria. Eu não quero que este exemplo seja um exemplo, apenas para mostrar como as classes são criadas sem mostrar exatamente como eu as usaria. Eu quero que eles sejam realistas, mesmo que eu vá apresentar algo com que eu não falei. Provavelmente. Certo, então se você quiser que o usuário defina a posição X na minha posição, todos os tamanhos ou cores, então você teria que atribuir parâmetros aqui. Então, se eu quiser, digamos que se eu quiser que o usuário insira a posição X e Y, então eu vou ter que dizer float e eu vou dar-lhe um nome diferente. Então eu vou apenas fazer atos de sublinhado, apenas associá-lo com X e depois flutuar. Por que, você pode chamá-los de X X Y. Por que é mais fácil se é diferente deste? Não é confuso. E então você os designaria aqui. Então este é o Isar inicial. Então eu diria que este X é igual a este X, então qualquer que seja a entrada aqui vai ser atribuído dois X e então eu vou fazer o mesmo para porquê Mas agora eu só quero que eles surjam do centro. Então eu vou dizer apenas 200. Então eu vou apenas digitar 200 e mentir vai ser 200 também. E então eu vou dar a todos o mesmo tamanho por enquanto. Então vai ser bom pixels, e então isso é apenas arbitrário. Não é importante o tamanho que você coloca. Cabe a você e então eu vou fazer cor. Vamos fazer com que seja apenas uma cor. Por enquanto, eu vou apenas torná-lo azul. Depois disso, vou escrever um método. Então, os dois principais métodos que você verá um monte de artistas generativos usar, incluindo eu, é o método de exibição e atualização. Você pode chamar o método de atualização mover. Cabe a você como você quer chamar esses métodos. Mas esta é a convenção que você veria muito. Eu sou apenas chamar o primeiro 1 display e display é basicamente o método de desenho. Mas eu liguei-lhe. Eu chamo isso de exibição. Só porque há um método de desenho nativamente e, em seguida, evitar-se grande vai mover os círculos. Então aqui você vai desenhar o que quiser desenhar. Então, o que quer que
você queira exibir, é só escrever aqui. Eu vou dar-lhe um preenchimento de cor, e você poderia ter apenas não usado chamada aqui são a cor variável aqui e apenas preencher diretamente. Mas eu só queria colocá-lo aqui e aqui apenas para mostrar que você pode adicioná-lo como uma propriedade e você pode até mesmo ter que usar sua entrada. A cor. Talvez queiram aleatoriamente a cor. Talvez não tenham a mesma cor. E então eu vou Teoh realmente desenhar um círculo. Então o círculo vai ter a exposição da posição Y e vocês, ok, eu vou deixar o método de atualização MT. Por agora, e vou mostrar-te como isto vai parecer. Ok, então você disse que se quisermos inicializar ou declarar um objeto da classe círculo, vamos chamá-lo como se fosse o tipo de dados, assim como strings e introduzir e flutuar em todos esses outros tipos de dados, e então eu vou chamá-lo de qualquer forma. Então eu só vou chamá-lo de senhor e então eu vou inicializá-los dentro deste círculo de função
central vai igualar o seu legal, porque agora eu estou criando uma nova instância de classe círculo. Então agora isso tem uma instância da classe? Não. Se eu quiser criar outra instância, eu vou apenas fazer o Cirque dois veículos, novo círculo. E estes dois terão configurações diferentes se eu inicializá-los com argumentos. Se eu tiver parâmetros aqui e inicializá-los, e se isso
tem e se isso
temque emergir do centro e eu fiz isso emergir do canto,
então esses eram objetos diferentes. que emergir do centro e eu fiz isso emergir do canto, Quando eu tiver que inicializar para servir dois aqui é bem, ok, agora eu vou apenas definir o fundo para que não seque porque eu queria apenas mudar de novo para White, e agora eu vou chamar este Cirque, e eu vou chamar seu método para exibir. Não vamos ligar para a atualização agora porque não tem nada. E mesmo que eu ligue, não
vai me mostrar nada além de exibir porque está implementado. Vai me mostrar o círculo. Não, é
assim que você chamaria métodos e propriedades dentro de sua classe para que eles sejam definidos como variáveis e funções porque eles são os mesmos. Mas como eles pertencem a uma classe, você tem que usar a notação de pontos para conectar ou para chamá-los porque eles pertenciam apenas aos armários. E o Cirque é uma instância dessa classe. Ele pode acessar todas as propriedades e métodos usando a notação de pontos. Então, se eu quiser acessar X, uma vez que não é privado então ou o valor de atos que eu posso fazer isso e eu posso definir valor para ele, também, se eu quiser torná-lo zero em vez disso, eu posso fazer isso. Mas agora só vamos mostrar. Ok, agora podemos jogar e você pode ver o nosso círculo. Podemos torná-lo um pouco maior, então eu vou fazer 20 e depois podemos ver o nosso círculo apesar disso. E se eu remover isso, você pode ver que ele não está mais lá. E isso é apenas uma maneira de coisas comuns, qualquer Commons ou qualquer coisa que tenha barras duplas antes dele. Não funciona ou não mostra. E agora ele mostra. Agora vamos realmente com ele. Então você mexe isso? Eu só vou fazer X mais igual. Vou fazer metade desse pixel. Então vai se mover devagar porque eu só tinha um pixel em cada anel. E agora, se eu quiser movê-lo, eu tenho que chamá-lo. Mas você tem que chamar o método que tem o movimento tão servido na atualização e agora ele está se movendo. Você vê que é muito semelhante a criar apenas círculo com variáveis normais ou
flutuadores normais de X e y como posições,
e, em seguida, mudar isso dentro da função de desenho e animá-lo. Mas se você quiser criar uma matriz desses círculos se movendo com velocidades
aleatórias, tamanhos aleatórios, você não será capaz de fazê-lo a menos que você crie uma classe. Então agora parece muito semelhante. Mas se quisermos criar uma matriz disso, eu vou apenas fazer colchetes para transformá-lo em uma matriz, vou chamá-lo de Surks em vez disso porque eu queria me manter leal, e então eu vou inicializar a matriz primeiro. Então nós não estamos inicializando a classe foram realmente inicializando a matriz desta vez no início, eu vou apenas novo círculo Cirque e então eu vou dar-lhe um tamanho de 10. Então digamos 1/2 10 círculos. Ok. Agora, para inicializar cada instância ou para criar cada instância do círculo tem que usar um loop for . A razão para isso é porque se eu quiser inicializar todos agora, este Cirque não existe. De qualquer forma, vou chamar-lhe Surks. E agora diz que isso não combina com um array. Então eu preciso dar crédito a nenhum direito. Para fazer isso, você teria que fazer zero até nove apenas para fazer 10 círculos. Então a boa maneira de fazer isso é usar, uh, eu vou apenas fazer um loop for e ceder em porque para um aumento, nós temos que contar. Então temos que usar inteiros e vai começar com zero. E então eu tenho que ser menor do que Surks Não comprimento porque eles só precisavam passar
pela matriz até o comprimento dessa matriz. Ou eu poderia apenas fazer 10. É a mesma coisa e, em seguida, Mas se eu expandir
isso, é melhor usar polegar a propriedade da matriz,
em seguida, mudar estes dois cada vez. E então eu vou ser implementado para cada aeração uma vez e agora para tocar em cada célula ou cada elemento na matriz. Eu vou ter que fazer eu para os suportes. Então o 1º 1 vai ser mais fácil. O 2º 1 vai ser um até as características nove e depois pára. E agora eu vou ter que usar um loop for é bem para exibição e a função de atualização em Estes são realmente surks outro em uma corrida. Eu vou ter que ir e os suportes. Agora, se eu executar isso, nós realmente temos 10 círculos, mas eles estão todos em cima um do outro. Então o poder desta classe agora é que podemos escolher posições aleatórias
posição inicial aleatória para cada um, e então todos eles vão mover o mesmo passo, que é meio pixel. Então eu vou mudar isso para uma posição aleatória. Vou fazer uma posição de zero a 400 e então para este também, vou conseguir de 0 a 400. Você não precisa saber muito sobre a função aleatória agora, mas só para que você acompanhe comigo, a função aleatória leva um valor mínimo em um valor máximo. Então isso vai me dar um número de 0 a 400. Então, qualquer número de lá, então vai ser e a razão pela qual ele escolheu para centenas de porque o tamanho da minha tela é 400 por 400. Então eu queria ir de zero, que é o lado esquerdo da tela para 400 que é o lado direito da tela. E o mesmo vale para a esposa de cima para baixo. E agora, se uma corrida acontecer, vamos ver que temos muitos círculos em diferentes posições se movendo da mesma forma. Também podemos renderizar o meu como o tamanho do passo. Então vamos dizer que eu quero um valor aleatório de 0,5 a 3, então eles terão velocidades diferentes. Alguns serão muito lentos e outros serão muito rápidos. Não, se eu executar, você pode ver que eles estão se movendo em um lugar muito aleatório. Eu acho que, no entanto, é que você pode ver que cada um deles está realmente mudando velocidade. A razão para isso é porque estamos alterando-o na função de atualização dentro das
funções de desenho , então cada quadro está realmente recebendo um novo valor aleatório. Mas você pode mudar isso para ter cada círculo tem quando SBI aleatório e gruda com ele durante o período de todo o programa. Então você vai fazer para inicializá-lo aqui por causa da inicialização de nossos círculos. Objetos é aqui na função de configuração, que é executada apenas uma vez. Então eu vou adicionar outra variável chamada tamanho do passo, e eu vou obter o mesmo valor, como chegar lá. Então 0,5 a 3, insira este tamanho da etapa. Agora, se eu executar isso, cada círculo vai ser atribuído um valor aleatório de 0,5 a 3, e ele vai ficar com ele enquanto eles se movem através da tela. Você pode ver que alguns são muito lentos e alguns são muito rápidos e já saiu da tela. Nós também podemos mentir, mas desta vez, tamanho do
passo vai ser o mesmo para sotaque na vida. Mas vai ser lá há o suficiente para torná-lo um pouco. São aleatórias que eu posso fazer. Podemos fazer um valor aleatório de negativo 3 para 3 desta forma, mesmo se, como adicionar e valor negativo vai realmente se mover no lado oposto. Você pode ver que o verão realmente indo por aqui e alguns são realmente. E se você quiser aleatorizá-lo ainda mais, você pode criar um tamanho de passo para acidente. Tamanho do passo por quê? Então, será um valor diferente para cada um. Agora temos círculos se movendo ao redor deste riacho. Você pode fazer um monte de coisas legais aqui apenas usando propriedades e métodos pensa que você não pode fazer com o que você já tem em processamento. Então, sim, você basicamente os faz interagir uns com os outros só porque eles são seus objetos. Assim, outros objetos que são criados pelo processamento não podem necessariamente interagir uns com os outros , por exemplo, e torná-lo seu próprio permite que você crie isso. Então isso é muito poderoso. E eu acho que se você aperfeiçoar isso, você pode fazer qualquer coisa, ferir a arte nativa, qualquer um
23. Variáveis e métodos do sistema: até agora. Aprendemos a criar tudo, desde variáveis a classes. Mas existem algumas variáveis de sistema e métodos que podemos usar sem a necessidade de
criá-los . Os primeiros 2 métodos usados sempre que começo um esboço são o tamanho e os métodos de fundo
,
os , métodos de tamanho, que é o tamanho da tela e os métodos de fundo. Essa é a cor de fundo das telas associadas com a função de tamanho são as variáveis de largura e altura que mantêm os valores do tamanho da tela, aqueles ar útil. Quando você quer dividir sua tela em uma grade, por exemplo, você não precisa fazer uma variável de inteligência. Você acabou de usar o próximo padrão ou duas variáveis que são adequadas para testes. Os médicos estão desenhando esboços, e há as variáveis do mouse X e do mouse y, que iniciaram o sotaque da vida. Por que posicionar os valores do mouse? Significando, enquanto você move o mouse. Se você imprimir os valores para o cônsul, você pode ver onde eles estão na tela. Falando em imprimir para o cônsul, o método Pentland é incrivelmente útil para depurar seu código. Em outras palavras, encontrando false em seu programa para corrigi-los, veremos como isso funciona no exemplo a seguir. Por último, o peito do mouse e manter o descanso eventos são ótimos para quando seu programa depende da entrada do mouse ou teclado do
usuário. Você pode, por exemplo, iniciar a animação quando o mouse ou teclado reprimido para que o usuário não perca nada. Estas são as poucas variáveis e métodos que eu uso mais, mas há mais que você confinou na documentação, então certifique-se de verificar isso. Agora vamos para o processamento para ver como eles funcionam.
24. Exemplo: variáveis do sistema: você já me viu usar o tamanho e a função de fundo uma e outra vez em cada exemplo. Então, geralmente começar este método de tamanho, dando-lhe dois argumentos. O 1º 1 é a largura e o 2º 1 é a altura da tela. Ao longo dos exemplos, eu só usei 404 100 mas ele pode usar o que você quiser. Eu costumo usar uma tela quadrada
, por mais grande ou pequena, porque eu coloco muito meu trabalho no Instagram, e essa é a resolução mais adequada para mim. Mas você pode fazer uma resolução HD para colocá-lo em um filme como uma acessibilidade 1920 por 10 80 ou qualquer outro tamanho que você quiser. Mas eu vou ficar com 400 por 400 para todo o curso apenas para ser consistente, e assim você pode ver todo o trabalho no mesmo tamanho que para a função de fundo. Nós conversamos sobre isso quando falamos sobre o tipo de dados de cor, então você apenas digita fundos, e então você dá um parâmetro para código hexadecimal ou para um valor em escala de cinza ou três parâmetros para R G e B. então você apenas digita fundos,
e então você dá um parâmetro para código hexadecimal ou para um valor em escala de cinza ou três
parâmetros para R G e B.
Dê-lhe um 255. Geralmente é com isso que começo. Ofereça um fundo de branco. E depois que estabeleci a paleta de cores, escolho uma cor diferente para fotografar o meu design. Ok, então ao longo do programa, eu usei 202 100 para X e y para posicionar o círculo no centro desta vez não vai fazer isso porque é melhor usar a largura e altura que é nativa do programa, já que é conectado ao método de tamanho. Porque cada vez que eu mudar isso, eles vão mudar automaticamente se eu usar as variáveis de largura e altura. Mas se eu usei 202 100 como costumava fazer antes, não vai funcionar, porque isso não vai ser sempre 400. E eu não vou mudar todos esses valores cada vez que eu mudar o tamanho do meu campus. Então desta vez eu vou desenhar o círculo no centro. Mas em vez de colocar 200 por 200 eu vou usar com dividido por dois e altura dividido por dois que eu vou dar um tamanho de 100 se
rodarmos isso, nós vamos ver o círculo no centro da tela. Agora, se eu quiser mudar isso para, digamos, 200 por 200 então ele ainda vai estar no centro da tela porque agora não é apenas 200 por 200. Porque se eu deixasse isso em 200 para ex e por que vai estar aqui porque para uma tela de tamanho 200 é o canto inferior direito. Então, é muito melhor apenas fazer o que é dividido por dois em altura, Dividido por dois iria manter seu valor a partir do primeiro argumento, e High leva seu valor a partir dos segundos argumentos do método de tamanho. Agora tudo funciona perfeitamente. Vamos voltar, Teoh nosso tamanho de tela anterior e vamos ver nossas próximas variáveis. Então, desta
vez, em vez de desenhar um círculo estático, eu quero mover o círculo, e eu quero verificar os valores fora da posição X e Y desse círculo. Desta vez vamos desenhar o círculo, mas eu vou usar o mouse X e o mouse y. vamos deixá-lo do mesmo tamanho, e agora se eu rodar isso, você vai ver um círculo no canto superior esquerdo, mas na verdade não está lá. É só porque Mouse, X e mouse por que vai começar em zero quando você executar o programa, Mas como você movê-lo, você vai ver que é os círculos estão realmente se movendo com o mouse. Mas a razão pela qual isso está desenhando é porque nós não temos um lado de função de fundo
do sorteio. Então, toda vez que o círculo está secando, ele está desenhando outro em cima da tela e o que está dentro dele. Então, se eu quiser redefinir cada quadro, vou apenas fazer fundo localizado antes de dar o mesmo valor que
começamos com. Então 255 4 branco. E agora remova isso. Ele vai se mover e não apenas desenhar, porque toda vez que ele está redefinindo com o fundo e, em seguida, com um círculo que está no centro e, em seguida, com um círculo que tem um mouse X e mouse. Esposa para X na minha posição, sei que isso é muito útil porque agora você pode usar a função de linha de impressão para imprimir o mouse X e posição y mouse. Isto vai ajudar-te a entender melhor o teu campus se olhares para os valores. Então, se uma linha de impressão casa X na minha casa, por que podemos ver o valor no cônsul aqui em baixo. Então, toda vez que você o move, então se eu entrar no centro, vai ser 200 por 200. Bem, quase 200 por 200. Ah, e então se eu for para o canto superior esquerdo vai ser zero um zero novamente, quase só porque eu estou saindo da tela antes que ele atinja zero um zero. E então se eu for aqui, vai ser quase 400 antes de 100, que é a largura e a altura da nossa tela. Agora você também pode imprimir a largura e altura apenas para ver os valores deles, e você vai ver que é 404 100. E se eu treinei para esses 2 200 você verá que mudou para 200. Você pode imprimir qualquer coisa aqui que seja variável. Observe também que há outra função de impressão que é chamada a função de impressão e não imprimir Lynn. A diferença entre os dois é que a impressão vai imprimir tudo um ao lado do outro, então não vai dar uma nova linha toda vez para que você possa ver que ele vai imprimir tudo ao lado do outro e não vai haver espaços entre eles. Mas a razão pela qual há espécies aqui é por causa desta vírgula, e eu vou mostrar-lhe um dos valores em mim, e agora você pode ver que não há espaço. A única razão pela qual havia um espaço é porque eu estou pedindo impressão para saída para valores em vez de um. Então, sim, eu prefiro a função de linha de frente, que é abreviação de linha de impressão. Então, toda vez que ele imprime, ele irá criar uma nova linha e, em seguida, abrir o novo valor. Então, cada vez que ele vai imprimir a largura e, em seguida, ele vai voltar para a nova linha e dentro
da impressão uma função. Você pode ter um argumento ou vários. Normalmente eu uso múltiplo e você também pode fazer, e eu tenho visto um monte de pessoas fazer isso em outras linguagens de programação. Você também pode fazer uma string dizendo com e, em seguida, mais, então você está adicionando este valor para a string porque imprimir Lynn são coloca uma string, então você pode simplesmente adicioná-lo assim. E agora você admite diz largura e, em seguida, mais o valor aqui. Então o valor é como ser colocado dentro do fluxo, e você pode fazer outro chamado altura e, em seguida, o sinal de mais altura. Então você está contaminando duas cordas basicamente ou qualquer valor para esta string, e eu posso ver largura e altura. E se você quiser uma vírgula entre eles, você terá que adicioná-la. Ou aqui ou você pode fazer isso. Depois da largura. Ela vai adicionar outra corda, assim você pode ver que ele tem um carro, você sabe. Então, sim, isso é basicamente chamado Fortalecer a Nação Cat para que você possa adicionar palavras-chave usando strings apenas para entender quais valores você está procurando. Apenas no caso de você ter um programa maior e você quer que esta função de impressão terra para manter a sua até que você tenha terminado o programa, é mais fácil se você sabe quais valores prontas em vez de ir e voltar para a
função Pentland . Ok, as próximas palavras-chave são nativas do processamento são o mouse pressionado e manter o repouso. Então esses eventos chamados ar porque eles acontecem quando o usuário faz algo assim Ou o usuário pressiona o mouse ou pressiona o teclado. Eu costumo usar isso com um f condicional. Se eu fizer f e então eu faço mouse pressionado e aqui eu vou imprimir linha isso. Você vai ver que Somente se o mouse estiver pressionado isso vai ser impresso para que você não verá isso todos os quadros dentro da função de desenho. Você só vê se eu clicar. Então, cada vez que eu clicar, a razão pela qual você está vendo muito é porque se pressionar o mouse é realmente para fora colocando um valor enquanto você está pressionando, nós vamos mostrar-lhe isso, hum, uma
forma muito fácil exemplo de exibição. Então, em vez de imprimir, vamos desenhar toda vez que a boca é pressionada e eu vou remover o fundo para funcionar por enquanto. Está bem. E agora você pode ver que eu desenhei um círculo onde ele clicou com o mouse. E se eu quiser continuar pressionando, vai desenhar um monte de círculos. Então isso é ótimo se você quiser desenhar algo, se você quiser criar um aplicativo de desenho, você pode criar qualquer forma, e nós vamos criar um exemplo fazendo isso no próximo capítulo. Então, esta é uma maneira divertida de deixar o usuário explorar as formas que você tem. Você também pode fazer. Se a imprensa da Kee
, quero que mude a forma. Ok, então para mostrar para você descansar, eu vou fazer alguma coisa. Eu vou criar um booleano, e eu vou chamá-lo de pequeno e eu vou dar-lhe um valor de falso agora. E eu vou dizer se pressionar a tecla, eu quero pequeno, igual, verdadeiro. E então eu vou fazer outro é condicional verificar se pequeno é verdade. Então, é pequeno. Pequeno é verdade que eu vou verificar do mouse pressionado dentro de sua ou agora saber sobre o condicional que pode dizer, se pequeno e rato Chris então não precisamos. Mensagem de condicional é e tentamos evitar coisas de nidificação, tanto quanto possível. Vamos dirigir a 50 pixels em vez de 100 pixels. Ok, então agora se eu pressionar agora, está desenhando um grande círculo. E se pressionar qualquer uma das teclas, ele vai desenhar o pequeno círculo também. A razão pela qual ele está desenhando o grande círculo e este círculo mensal em cima dele é porque eu não coloquei isso dentro do valor falso, então eu vou fazer outra coisa. Mas isso não vai funcionar agora porque aqui está checando se é pequeno e o rato está
deprimido . Então aqui mais vai verificar o mouse está impressionado. Então eu posso fazer outra coisa se e você não pequeno e seu mouse pressionado onde eu posso dio um exemplo de
nidificação onde eu posso dizer, se o peito do rato e, em seguida, dentro do contrato de mama Moisés, se pequeno e então mais. Mas eu acho que é melhor só porque faz mais sentido e você tem que rastreá-lo dessa maneira. Então, vou fazer isso em vez disso. Está bem? E agora qualquer uma das teclas é pressionada. Vai ser um pequeno círculo. Então é assim que você pode usar manter descanso em seu programa. Você também pode ter outros usos. Vou mostrar-lhe um deles cuidadosamente para ser criativo. Eu realmente não tenho todas as idéias. Eu só lhe dou as chaves, e você pode ser tão criativo quanto quiser na criação do seu projeto final. Ok, então isso é tudo que eu tenho hoje para um sistema variáveis e métodos, É
claro, você tem que ir e verificar a documentação para muito mais que você pode usar no processamento e vamos ver mais exemplos e vamos ver mais usos para alguns destes e para o próximo capítulo.
25. Eventos: para este módulo vai falar sobre eventos de massa e teclado, que são muito úteis para diferentes entradas de usuário estão lá,
em seguida, mouse e teclado pressionado. Eu gosto de usar essas entradas para vários fins, mas meus mais usados são a tecla pressionada ou a tecla liberada para salvar imagens da minha arte. As diferenças sutis. O primeiro faz a ação. Assim que a imprensa do kee o segundo aguarda o lançamento da chave. O mesmo vale para o clique do mouse que o mouse liberado. Há um monte de outros eventos em processamento é Página de Documentação, então vá lá para verificá-los. Vamos obter dois exemplos de eventos no capítulo de saída de design quando exportamos nossos projetos.
26. Randomness: neste módulo discutiu aleatoriedade. Usando duas funções aleatórias e ruído aleatório retorna o valor para um valor mínimo definido para um máximo. No entanto, ruído retorna o número flutuante de 0 a 1 que você pode dimensionar para atender às suas necessidades. Quase todas as obras de arte que crio essas aleatoriedade, e é uma das minhas ferramentas favoritas na arte generativa. Se eu quiser aleatorizar a cor, por exemplo, eu uso a função aleatória. No entanto, se eu quiser aleatorizar movimentos suaves, usei uma função de ruído. Vamos ver um exemplo para descobrir a diferença entre a função aleatória e a função de ruído .
27. Exemplo: Randomness: Ok para aleatório e ruído. Eu quero mostrar-lhe um exemplo que Everton de antemão que eu quero mostrar-lhe como essas duas funções diferem. E eu vou explicar o exemplo e passá-lo passo a passo. Então, a primeira coisa que eu criei são para flutuar valores X e Y posição. E então, como sempre, eu fiz um tamanho no fundo de branco e então eu comecei o porquê no alto dividido por dois. Ok, então eu implementei o X e começa com zero, certo? Se também como ele incrementa, ele será em comentar por um. Se eu comentar este agora e eu colocar X em vez disso aqui, vai ser um exemplo normal onde o X ou onde o círculo está se movendo para a direita. Não, Em vez de implementar X, Eu criei o valor flutuante ouro são, e eu dei um valor aleatório de zero a largura. Então isso vai me dar uma exposição de zero para o que é tão flutuante exposição de zero para ele para que possa ser o meio. Pode estar no lado direito. Pode estar no lado esquerdo. Pode ser qualquer valor e podemos imprimir linha estes valores bem para que você possa vê-lo se quiser . Antes de aplicá-la à Ellipse. Vou mostrar-lhe os valores. Então vai me dar um valor de zero para o quê? E se eu aplicar isso para a Ellipse em vez de nosso em vez de ex, eu vou colocar o nosso e agora porque nós não temos uma função de fundo vai desenhar, ok? E você não pode ver exatamente porque está desenhando um sobre o outro, então você não sabe. Parece que há uma infinidade de círculos, embora seja apenas um círculo saltando de uma posição para outra firme zero para a forma como
vou mostrar o fundo. Mas se você se sentir tonto só de olhar para um círculo enlouquecendo, eu recomendo não assistir esta seção, hum, ou talvez desacelerá-lo. Mas geralmente o que vai acontecer é que o círculo vai enlouquecer de zero a sagacidade em médicos
aleatórios. Então, se eu executar isso agora, você pode ver que o círculo está enlouquecendo. Vai da esquerda para a direita nas posições de Brandon e podemos abrandar alterando a taxa de
quadros. Então eu vou colocar a taxa de quadros em 12. Você pode ver que é muito mais lento. Vou abrandar ainda mais. Faça três e você pode ver o círculo pulando de um lugar para outro. E se removermos o fundo, você pode ver que ele vai desenhar. Mas agora está tentando posições diferentes. Agora vou mostrar o mesmo exemplo com o barulho. Ok, agora, vendo no exemplo do ruído, nós temos as mesmas coisas. Temos verdadeiros carros alegóricos, ex e por que temos altura branca dividida por dois. E novamente se eu incrementar X e colocá-lo aqui vai se mover da esquerda para a direita. E ele queria que a gente visse. Só um cheque. Está se movendo da esquerda para a direita? Sim, eu estou removendo X e, hum, substituí-lo por n assim e agora está tomando uma função de ruído. Nenhum ruído retorna o valor de 0 a 1. Mas agora para vê-lo se movendo de uma maneira muito suave, vamos ter que ampliar a onda de ruído. Sem barulho. Ser de 0 a 1 é extremamente pequeno. Mas se nós apenas multiplicá-lo com ele não vai nos dar um movimento muito suave só porque é uma espera muito longa. Então nós queremos apenas obter um pedaço dele, então eu vou ter que frigideira por um valor. Então agora eu estou dimensionando em 300 dividindo-o por 300. E assim, eu só estou recebendo um pequeno pedaço da onda, o que vai me dar um movimento muito suave. E então eu estou multiplicando pela inteligência para aumentar a escala. Então eu estou ampliando isso dividindo-o por 300 o valor de certas maneiras. E então eu estou treinando o tronco da onda pela inteligência. Então agora ele está se movendo de zero para a inteligência, e eu vou ter que incrementar extras porque ele está sendo usado aqui. Então eu precisava incrementar para obter os valores. Não, se eu rodar este aqui, você pode ver que o movimento é muito, muito suave em vez de aleatoriedade. E se eu realmente removi o fundo para vê-lo tentando o desenho é muito mais suave e você pode fazer muito com a função de ruído. Vou mostrar-lhe alguns exemplos usando barulhento e aleatoriedade lá criaram de antemão apenas para que ele possa ver o mesmo exemplo usando aleatoriedade e ruído e como esses dois podem diferir . Agora que abrimos o projeto de arte aleatório,
vou executá-lo para que você possa ver como se move aleatoriamente. Agora que abrimos o projeto de arte aleatório, É muito arbitrário. É muito louco. E o movimento
, ainda está dando ótimos resultados. Mas agora, se você vê o ruído funcionando, vai ver um resultado muito diferente não pode. Este é o mesmo exemplo usando ruído e você pode ver que o movimento é muito mais suave e dá-lhe curvas mais agradáveis. Então, enquanto você brinca com a escala e a força do ruído, você vai ficar diferente flutuando no movimento. Vais ter ainda mais rotações só porque estamos a usar a aleatoriedade, o ruído e deportação destes círculos, e isso vai dar-te um resultado diferente. E é uma das razões pelas quais gosto de barulho. Muito melhor para criar Pink Charlie Art em vez de usar a função aleatória
é porque ele lhe dá aqueles movimentos calmantes e dá-lhe pinceladas em oposição à
função aleatória que lhe dá um olhar muito louco para o trabalho. Pode funcionar se é isso que você quer. Mas geralmente quando eu usei aleatório, é apenas para escolher talvez cores diferentes ou para duas formas diferentes como eu usei em meus outros projetos. Mas geralmente quando se trata de simulações ou arte e pintura, é melhor usar, em
seguida, função de corrida porque lhe dá muito mais suave rota hortelã. Por enquanto, isso é tudo o que eu vou falar quando se trata da função de ruído e
função aleatória . Mas vamos lidar com eles mais tarde no próximo capítulo, e eu vou fazer mais aulas sobre eles no futuro, especialmente a função de ruído, porque há muito que você pode fazer com isso, e você pode produzir uma arte muito incrível apenas usando a função de ruído agora para o próximo módulo.
28. Estrutura: este último módulo no Capítulo dois vai ser tudo sobre instrutor organização. Isso é muito importante saber, porque um erro de novato é apenas escrever código em um assunto muito desorganizado, porque você só está tornando difícil para si mesmo no longo prazo, Por
exemplo, comentários são fundamentais para entender por que uma linha de código é escrita. Eu lutei com isso quando comecei. Às vezes você sabe como funciona o código, mas ele não sabe por que eu o usei. Aqui está um exemplo. Eu tenho o mesmo loop quatro com dois comentários diferentes. O primeiro me diz que estou mapeando os valores Y para os valores de ângulo, mas a função de mapa já está dizendo isso. Então aqui eu só estou sendo repetitivo. O que eu preciso saber é por que eu estou mapeando os valores Y para os ângulos. A propósito, não se preocupe com o exemplo de si mesmos. Este é apenas um exemplo de comentários. Neste outro exemplo, quero mostrar como declarar suas variáveis e funções com nomes descritivos pode ajudá-lo a entender o que elas fazem a longo prazo, em vez de adicionar comentários extras mostram. Observe que, às vezes, se você precisar anotar seu código, talvez a solução seja renomear sua variável ou função no lado esquerdo. Eu tive que adicionar um comentário para entender o casaco quando no lado direito, o nome das funções explica melhor. O ponto é ser descritivo o suficiente para dar sentido ao seu código mais tarde, voltando para nossas classes e objetos. Exemplo. Criamos a classe na parte inferior do arquivo dela, mas esse foi um pequeno exemplo. Em projetos regulares, as classes ocupam um tronco do seu arquivo, que significa que você vai rolar para cima e para baixo para navegar entre sua classe e seu projeto. É por isso que vários arquivos são mais práticos. Normalmente eu crio um arquivo para o meu projeto principal e um arquivo para a minha classe. E se eu tiver várias classes, eu as separo em seus próprios arquivos. Por último, mas não menos importante nesta seção irá falar sobre convenções de nomenclatura. Eu não sei se você notou, mas sempre que eu declaro a classe, eu comecei com uma letra maiúscula, e quando eu criava variáveis ou funções, eu comecei com uma letra pequena. Isso é chamado de convenção de nomenclatura. Eles ajudam você principalmente quando você está trabalhando com equipes ou compartilhando seu código on-line ou apenas para manter nosso código consistente. Eu não mostrei um exemplo com uma variável de várias palavras ou nome de função. Mas se você precisa fazer isso, você terá que usar caixa de camelo inferior. Você começa com uma letra pequena para a primeira palavra, depois para cada palavra depois você terá uma letra maiúscula. Chama-se assim porque parece que as costas de um camelo. Isso é praticamente tudo para o segundo capítulo. Espero que tenha aprendido muito e tenha achado os exemplos úteis. Agora é hora de algumas ferramentas artísticas.
29. Capítulo 3: Noções básicas de design: Foi divertido aprender sobre conceitos de programação. Mas como podemos criar arte? Começaremos com funções principais e transformação. Então vamos começar a implementar cores em nossos exemplos. Quando estivermos familiarizados com isso, podemos começar a mergulhar nas imagens e processar como elas são carregadas na tela e como podemos manipulá-las. Por último, mas não menos importante, vai tocar no tipo um pouco, aprendendo a usar a cadeia e carregar tipos de dados e como carregar texto de um arquivo bem trabalhando exemplos juntos para cada seção para entender melhor os conceitos.
30. : Vamos começar com o primeiro exemplo da seção de forma será criar algo semelhante a este Desde que vai ser aleatório, não vai exatamente olhar assim, mas nós vamos para o mesmo olhar. Para este exemplo, um mudou o tamanho de cada círculo com base em suas posições no eixo X. Isso deve ajudar-nos a começar a planear. Então precisamos saber onde esses círculos de posicionado no eixo X e precisamos saber seus tamanhos ou precisamos mudar seus tamanhos. Portanto, eu vou precisar de duas variáveis para flutuar números porque eu queria ser um pouco mais preciso do que inteiro, já que vamos verificar a sua posição através de duas linhas, porque queremos três diferentes tamanhos com base em suas posições no eixo X. Então, a primeira coisa que precisamos é da exposição, e depois precisamos de “Desculpe”. Não, eu gosto de começar meus projetos desligando o traço, e então eu vou mudar para Preta porque o padrão é branco. E vamos começar apenas com isso por agora e depois dentro da função de desenho, eu quero dar aos círculos uma exposição aleatória e eu vou fazer de 0 a 400 já que estamos fazendo de zero. Não preciso escrever o zero por causa da falha. Está começando do zero algo que você acabou de fazer por 100. Por enquanto, é exatamente o mesmo que escrever 0 a 400 Eu vou desenhar meu círculo uma Posição X E então em vez de criar outra variável para o porque eu vou apenas fazer isso diretamente aqui. Então eu vou fazer altura porque eu quero de zero a altura. Então eu quero que todos os círculos tenham um posicionamento aleatório no acesso Y de zero a hype, e então eu vou dar a eles a variável de tamanho porque eu quero que seu tamanho mude com
base em sua posição no eixo X antes de executá-lo. Vamos dar um tamanho inicial. Eu vou apenas para 10 e se nós executá-lo, nós podemos ver que nós temos círculos aleatórios em posições aleatórias. Agora eu quero cortar minha tela em três seções. E se a exposição círculos é do lado esquerdo, por exemplo, quando a primeira seção então eu queria ser de um certo tamanho. E então, se estiver na seção do meio, eu quero ter um certo tamanho. E por último, se estiver na seção esquerda, eu queria ter um tamanho diferente. Agora podemos fazer isso usando uma seção de enfraquecimento condicional F off. Eu não posso usar um F um outro f e então ou então condenar. Então eu vou dizer se X é menos que centenas. Então essa é a minha primeira seção. Então, agora, se X é menor que 100 então ele está no se ele está na primeira seção, eu quero que o tamanho seja um valor 10 a. Deixe-o em que e, em seguida, e em seguida, antes de eu fazer o outro. Se eu vou fazer outra coisa e colocar o tamanho para 30 vamos ver o que acontece. Agora podemos ver tudo o que está nesta seção, que é menos de 100 pixels, vai ser 10 e então todo o resto vai ser 30. Eu também vou mais, e eu vou verificar se X é maior que 100 porque nós já verificamos. Se for menor que 100 eu quero verificar se é maior que 100 se X é menor que 100 e eu quero o tamanho 3 20 Agora temos três seções do tamanho 10 tamanho de 20 e tamanho de 30. Para tornar isso mais interessante, vou adicionar um valor Alfa ao Phil. Eu vou-me embora. É preto, mas vou adicionar um valor Alfa de 100. Então, de 0 a 5500 é muito bom. Não é tão transparente e não, esse rosa. Então vai nos dar uma boa visão. Então agora, quando eles se sobrepõem, eles me dão uma cor diferente. Agora, para tornar isto ainda mais interessante, em vez de dar um tamanho de um valor estático, vou dar-lhe um valor aleatório. Eu quero dar um dia aleatório de 1 a 10 para este,
um em torno dele valor de 11 a 20 para este, e finalmente valor aleatório de 21 a 30. Desta forma, sentir-se-á mais transição de um tamanho para outro. Criamos um design ao qual você pode adicionar cores, com
o qual você pode brincar ainda mais. Talvez você queira fazer diagonais ou você quer jogar com o posicionamento ex no posicionamento dos Emirados Árabes Unidos em vez de apenas X. Ou talvez você queira torná-lo vertical em vez de horizontal como fizemos aqui. Hum, sim. Sinta-se livre, Teoh, crie sobre este e eu para brincar com ele para ver o que você pode inventar.
31. : para o próximo exemplo na seção de forma, vamos criar algo como isto. Agora isso parece uma estrela e pode ser adicionado em uma ilustração maior, então vamos ver como podemos criá-la. Como sempre, gosto de começar. Não temos derrame só porque me dá um olhar mais suave. Eu sei que muitas pessoas usam AVC também, e isso pode adicionar um elemento muito cartoony ao seu design. Então sinta-se livre para fazer o que você gosta de fazer. Mas para mim, eu gosto de começar sem acidente vascular cerebral e depois em um acidente vascular cerebral mais tarde. Se eu sentir que o design precisa OK para isso, um terá que começar com um retângulo. E eu sei que eu só introduzi círculo antes, talvez com tropeçou em um lábios na seção aleatoriedade, mas eu realmente não falei sobre isso. A função Elipse é semelhante à função círculo. No entanto, você pode ter um diferente com a altura, então não vamos parecer um círculo. Ele vai parecer basicamente como uma elipse, e você pode fazer um círculo fora dele se você der. É a mesma largura e altura e o mesmo vale para retângulo e quadrado. Portanto, há uma função diferente chamada Square que permitirá que você para maior quadrado com menos argumentos. Mas eu gosto de usar o naufrágio também, só porque eu acabo mudando o juízo da altura e dá um olhar diferente. E isso é o que vamos fazer aqui é bem, então eu vou criar o retângulo na posição 00 e eu vou dar a largura um valor
aleatório. Então eu vou dar-lhe um Random Valley de 10 a 300 porque eu queria ter uma lacuna em cada lado e então eu vou Teoh, dar-lhe uma altura de 20 Agora para isso vai estar na mesma posição às 00 e cada vez que está indo, Teoh tem um diferente com. Mas eles vão ter todas a mesma altura, então eles vão parecer retângulos de tamanhos diferentes agora, já que não temos traço e o padrão Phyllis White, eu vou ter que mudar. O padrão caiu para preto. Se eu rodar
isso, vai parecer que é um retângulo, mas você pode ver que está se expandindo. Na verdade, está desenhando um em cima do outro. Então vamos dar-lhe um valor Alfa de 10. Agora podemos vê-lo realmente mudando, e podemos ver que há uma infinidade de retângulos em cima um do outro. Agora preciso levar isso para o centro. Então, se eu fizer o que é dividido por duas altura dividido por duas, então eles movem-no para o centro. Vai começar a partir do centro, mas depois vai expandir-se para a direita. A razão para isso é porque para o retângulo, está secando do canto superior esquerdo. Mas nós queríamos desenhar a partir dos círculos X centrais, então eu vou mudar o modo retângulo usando a função de modo Rex Teoh Center. Desta forma, ele vai desenhar a partir do centro, e você pode ver que é um olhar muito mais agradável. Para que pareça uma estrela, vou ter que girá-la. Há uma função de rotação que leva em um valor e brilho. Você pode usar graus e depois convertê-los usando a função de brilho. Mas eu vou apenas usar diretamente brilho e eu estou indo Teoh usar valor aleatório de zero a dois pi então dois pi é equivalente a 316 graus, então isso vai me dar um círculo completo. No entanto, se eu executar isso, vamos correr para um problema porque girar está girando em torno de 00 ponto da tela , que está no canto superior esquerdo da tela. Agora podemos corrigir isso usando traduzir para traduzir toda a tela ou os zeros. Seu nomeou a tela para o meio da tela, que é o que dividido por dois e altura dividida por dois. Traduzir vai mover a tela inteira ou o buraco é seu, seu ponto para o que você der, então eu vou dar com Dividido por dois dividido por dois. Certo, e agora está funcionando. Ele está girando em torno do ponto 00, que é movido para o centro. Mas agora preciso que os retângulos estejam no centro. Desde que movemos zeros seu ponto para o centro, e agora eu posso redesenhar os retângulos às 00 porque agora eles estão no meio do campus. Faça 00 Agora temos um retângulos girando em torno do ponto médio da tela, e eles têm larguras diferentes para fazer isso mais como uma estrela. Vou mudar o fundo do dedo preto e o filtro branco. Agora isso dá uma aparência muito diferente e parece um túnel ou uma estrela emergindo
do centro, que pode ser adicionada a qualquer ilustração e tornando-a incrível. Em seguida, realmente usar funções com formas para criar uma aparência diferente.
32. : Para seus primeiros 2 exemplos, criamos um design animado, mas desta vez vamos criar um design estático usando loops e função. Para este design, ele criou uma fileira de contas, e então eu usei essas para criar meu visual final porque isso me permite colorir cada conjunto de
contas de uma cor diferente. Então ele vai dar-lhe um visual diferente de desenhar círculos aleatórios na tela com
cores aleatórias . Porque então eu vou ter uma cor diferente para cada círculo. Quando aqui, posso ter uma cor diferente para um conjunto de formas. Então vamos criar uma fila de assentos para isso. Vamos fazer exatamente com ele com um rosto sorridente e o exemplo de funções. Vou criar uma função chamada Vidro, e aqui eles querem usar quaisquer parâmetros por enquanto. Mas vamos implementar mais tarde isso por enquanto, vamos apenas criar a linha e então vamos ver o que podemos fazer a seguir para criar uma linha de contas. Vou usar o loop for dentro da minha função. Agora eu posso criar três Eclipsys diferentes, talvez usando a função alevis, e vamos fazer isso primeiro, apenas para praticar um pouco mais com formas, e então vamos implementar o loop for e ver como podemos criar toda a linha de círculos ou Philip vê ao lado um do outro para os primeiros lábios. Eu vou colocá-lo em 00 e então eu vou dar-lhe um tamanho. E eu quero que isso seja uma variável porque eu vou usar o mesmo tamanho para todos os círculos. Eu vou apenas criar uma variável local aqui, e então eu vou usá-la para o tamanho. Primeiro. Eu só queria saber,
olha, olha, porque eu quero que isso seja estático, então não há necessidade de uma animação porque só vai desenhar círculos em cima um do outro. Eu vou mudar o filtro zero e o fundo para 55 e então eu vou chamar o dro aqui. Então, se algo disso agora, podemos ver que temos apenas um círculo no canto superior esquerdo. Agora vamos pedir aos outros círculos para que o próximo círculo seja ao lado do primeiro círculo. Precisamos movê-lo pelo tamanho dele. Agora, um círculo ou nos lábios são desenhados do centro. Então, se eu quiser movê-lo ao lado do outro, eu vou ter que movê-lo por dois rádio I. Então isso basicamente significa o tamanho. Porque função teólogos leva em uma largura e caminhada. Não leva um raio. Leva todo o diâmetro. Então eu vou estar usando isso para o eixo X do segundo círculo e, em seguida, no eixo Y vai estar no mesmo nível. Então está ficando zero, e então eles vão ter o mesmo tamanho. Se eu executar isso, podemos ver que eles estão ao lado um do outro depois. Vamos fazer isso um pouco maior para que possamos ver, e então podemos mudá-lo de volta. - Não. Se eu quiser desenhar o terceiro círculo, ele vai ser tamanho multiplicado por dois zero no eixo Y e, em seguida, começar a ter o mesmo tamanho. Agora, toda vez que eu quiser mover um novo círculo, ele vai ser tamanho multiplicado pela posição de que, então o primeiro 1 vai ser tamanho multiplicado por zero. O 2º 1 é, na verdade, o tamanho multiplicado por um e o 3º 1 é o tamanho multiplicado por dois. Então tudo depois vai incrementar o multiplicador. Então aqui 0123 A coisa que poderia fazer isso para nós é um loop for, então podemos começar em zero, e então podemos movê-lo para cima. E podemos usar os decks de Thean para isso como um multiplicador. Então vamos criar isso para e eu igual a zero olhos menos que três e então dispositivo lugar certo . Então agora só precisa é apenas uma função de elipse. E em vez disso, eu vou fazer o tamanho multiplicado por e ele deve nos dar os mesmos resultados. E se eu quiser que o Teoh mude a contagem para qualquer número? Eu posso fazer isso adicionando em parâmetro e eu vou chamá-lo de contagem. E depois fui substituída por aqui. Então agora tudo o que eu escrever aqui vai ser desenhado para cá. Então, se eu fizer cinco nós vamos ter cinco círculos e se eu quisesse Teoh oito, então nós teremos oito círculos. Agora a nossa função está pronta para o nosso próximo loop de quatro que está indo na função de desenho. Agora, isso para um loop vai desenhar uma infinidade de fileiras de contas. Vou começar com um loop regular, indo de zero para qualquer número arbitrário que você quiser. Vou começar com 100 e aqui posso colocar minha função. Agora, se eu executá-lo, nós vamos ver que nós temos realmente 100 fileiras de contas de oito contas. Mas eles estão em destaque lá. E você pode saber que se eles estão em cima um do outro porque você pode ver que o endereço dos círculos está pixelado. Se eu mudar isso para um para que possamos ter um, você pode ver que é muito mais suave. E agora você sabe que você só tem um agora, ao contrário do que fizemos no exemplo smiley que nós adicionamos um sotaque y posição. Eu vou apenas usar a função de tradução em vez disso. Então traduzir vai mover isso para onde eu quiser na tela. Então, basicamente, ele vai mover todo o campus onde essas contas vão estar em vez de mover as fileiras de contas. Então eu vou apenas dar-lhe uma posição aleatória de zero. Então não vamos escrever zero de zero para Wick e então para o eixo y, estamos passando pelo mesmo, mas com alturas. Mas agora, se eu executar
isso, ele está realmente movendo a mesma tela para posições aleatórias porque cada uma dessas fileiras de contas está sendo desenhada no mesmo campus. Então o que eu preciso fazer é criar novas telas para cada proezas fileira. E para fazer isso, você pode usar a matriz push em funções de matriz pop. Mas isso iria fazer é criar uma nova tela ou uma nova camada para essa funcionalidade para forma
que você está criando. Então agora eu estou criando uma nova camada, e então eu estou traduzindo para uma posição aleatória na tela. E então eu vou Teoh, desenhar a elipse, agarrar naquela tela, e então eu vou fechar essa camada. Eu quero apenas criar uma linha feeds nessa tela
e, em seguida, eu quero fechá-la Alguém? Então, no segundo ah, iteração do loop, eu quero criar uma camada diferente, e eu quero criar uma nova função do Vidro e então eu vou fechar essa camada novamente. Então, basicamente, isso nos permite ter uma infinidade de camadas em vez de brincar com o posicionamento de cada elipse dentro das batidas de estrada. Então isso torna o cálculo muito mais fácil. E agora, se eu comandar isto, vamos ver que temos muito. Agora podemos ver qualquer coisa porque o tamanho do ar círculos enorme. Então eu vou apenas mudá-lo de volta para 10 e em vez de ter oito, poderia apenas fazer cinco para torná-lo menor para que possamos ver agora isso já é interessante. Se você adicionar cor a ele, se você mudar, a capacidade de cada um dos círculos vai lhe dar um olhar muito, muito interessante. E se você realmente fez isso aleatório, então eu vou dar um valor aleatório de 1 a 5, pode ser apenas um círculo ou cinco círculos. Isso vai ser irritado porque ele precisa de um inteiro e retornos aleatórios à tona para que possamos simplesmente converter isso em um fim, colocando-o dentro de uma função inteira ou uma função in . Agora, isso está convertendo o flutuador em um inteiro. Então ele vai concordar com ele, e vai funcionar. Então, agora, se
fizermos isso, podemos ver que alguns são um verão três e verão cinco. Agora, para torná-lo ainda mais interessante, vamos girar essas linhas de contas, então eu vou girar cada tela organizando valor como fizemos antes. Aleatório, cerca de 0 a 2 pi. Há também torta e quarto de torta e meia torta para que você possa brincar com seus valores
aqui na rotação, você pode obter resultados diferentes, mas eu vou ficar com dois pi porque eu quero uma rotação de zero Teoh 3 60 Agora você pode ver que é muito mais agradável. Você também pode criar um Phil aleatório para esses círculos. Então aqui dentro do meu loop for, vai fazer cada coleção das elipses que são criadas por B dro uma cor diferente. Mas vou manter uma escala de cinza até chegarmos ao módulo de cores. Então ele vai ser apenas aleatório, e eu quero que ele de 0 a 55 porque o menor valor é zero e o maior valor no calo de
graça para 55 que é branco. Eu vou apenas para 55 e agora cada fileira de contas vai ter uma cor diferente. É muito legal. Mesmo com o derrame, é bom que você possa fazer, você sabe, derrame e eles vão te dar exatamente a mesma coisa que eu te mostrei no início.
33. : tempo para um dos meus exemplos favoritos e um dos exemplos que eu realmente criei quando comecei a arte generativa. E é uma tela de linhas aleatórias. Neste quarto exemplo do módulo de forma, vamos olhar para Loops aninhados. Esta é a primeira vez que vamos enfrentar loops aninhados. Mas já que você entende para loops muito bem agora, então você será capaz de entender aninhado para loops também. Para este exemplo, vamos criar uma grade e para uma grade, precisamos de alguns componentes. Então a primeira coisa que precisamos saber sobre um grande é quantas células teremos. Quantas filas e quantas chamadas? Aqui é onde nossos quatro loops entram. Então vamos realmente começar com o loop for antes de qualquer coisa que eu vou apenas ok, parar o loop do programa porque eu quero que este seja um design estático. Vamos começar com um aninhado para loops primeiro para que possamos descobrir o que precisamos em termos de variáveis para o 1º 4 Loop vai ser nosso loop normal, e nós vamos chamar o inicializar er I e que vai ser menor que 10. Então eu vou fazer 10 linhas. Vamos desenhar um retângulo primeiro para que você possa ver a grade visualmente. E então podemos adicionar linhas depois que vamos fazer o que fizemos com as contas Rove no exemplo
anterior eu vou fazer naufragado na posição, tamanho multiplicado por I e, em seguida, o branco vai ser um zero, porque ainda não implementou a Rosa realmente criando as colunas primeiro. Então estamos indo horizontalmente sobre o eixo do machado. Então eu vou deixar o Y em zero, e então eu vou dizer, tamanho em tamanho para a largura e altura. Então a primeira coisa que precisamos criar é a variável de tamanho. Mas agora, em vez de realmente dar-lhe tamanho estático, eu vou ter que calcular o tamanho dividindo a largura por 10. Portanto, não podemos realmente acessar sem aqui. Então eu vou apenas fazer o tamanho flutuante aqui e, em seguida, inicializá-lo aqui depois de definir o tamanho da tela. Então eu vou apenas fazer o tamanho e, em seguida, fazer o que é dividido por 10 que é o número de colunas por aqui. E agora se executarmos isso, podemos ver que temos uma linha e 10 colunas. Então, se contar, está na hora. Legal. Agora podemos ninho para que possamos criar a outra rosa para o proprietário de um loop for. Vou criar um sábio inicial diferente. E desta vez vou chamá-lo de Jay. Cabe a você o que você quer chamá-lo, mas você pode chamar esse sotaque por quê? Vai ficar tudo bem, mas eu vou apenas ir com I N J. Porque isso é o que eu estou acostumado a dias também menos de 10 porque eu quero criar 10 linhas desde que temos uma tela quadrada e então eu vou incluir Minjae por um. Agora, um retângulo está realmente indo dentro do aninhado para loops. E agora aqui temos o tamanho multiplicado por I para cada coluna. Vou fazer a mesma coisa, mas desta vez vou multiplicá-la pelo Dre. Então vai de cima para baixo, e se eu rodar isso, teremos uma grade completa. Então é basicamente assim que criamos uma grade. É muito simples agora, Vamos linhas de criador dentro do grande Agora no design. Se olharem para trás, verão
que temos leões de rotações diferentes. Então temos quatro rotações diferentes. Temos um que é vertical. Temos outro que é horizontal e temos que morrer. Você sabe, um vai da esquerda para a direita e o outro vai da direita para a esquerda. Vamos criar todos estes e depois de vê-los e depois de entendermos como os
criamos, vou criar um F condicional para criar uma rotação aleatória para as linhas. Vamos criar a primeira linha. Então, uma função de leão leva em duas exposições e duas posições y, uma exposição inicial e uma exposição final e, em seguida, uma posição inicial Porquê e final? Por que posição? Então está basicamente se conectando a diferentes posições na tela. Agora, a
fim de tornar isso mais fácil para nós, eu vou armazenar o posicionamento aqui dentro de variáveis. Então eu vou chamá-lo de posição X. Isso vai se arrepender é multiplicado por I, e então o outro vai para a posição. Por que vai ser tamanho multiplicar por Dre. E agora posso usá-los aqui. E se eu executar isso, vamos ver que é exatamente o mesmo. Agora vamos criar ladrões. Linha vertical primeiro. Agora que sabemos que os retângulos são criados a partir do canto superior esquerdo. Conhecemos essa posição. Posição de sotaque. Por que está no canto superior esquerdo de cada círculo. Então, se eu quiser desenhar uma linha vertical, vou ter que ir do médico Axinn. Por que a primeira posição x e y de cada círculo dois Posição X, porque ele não está se movendo no eixo X,
mas, em seguida, para posicionar por que, mais o tamanho do retângulo. Então sua posição X, porque não estamos vivendo no eixo X e, em seguida, posicionar o porquê, mais o tamanho. Agora, se eu verificar, não
vamos ver nada porque os leões estão cobertos pelos retângulos. Então eu posso remover os retângulos e podemos ver que as linhas são realmente desenhadas ou eu posso aumentar este traço Pesos quatro linhas, 25 Mas agora, como este é um loop for, ele vai aumentar a taxa de traçado para a primeira linha. Mas, em seguida, cada retângulo após dentro do loop quando estes são um vai ser também traçado caminho para cinco. Então eu vou mudar o chumbo de derrame aqui para um. Agora os retângulos, vamos ter um peso de um. E as linhas terão um peso de traçado de cinco, então você pode ver que as linhas são realmente desenhadas. Agora, não
podemos ver o início e o fim de cada linha. Mas se eu disse menos 10, então podemos ver que eles são realmente linhas diferentes e não uma grande linha. Ok, eu vou comentar isso, e eu vou desenhar a linha horizontal para cima. Então a linha horizontal vai ser o oposto da linha vertical. Então, em vez de ir da posição X e posição, posição
larga, acento, posição y plus size, ele vai para ir da posição. Posição de sotaque. Por quê? Mas desta vez, a posição por que vai ser a mesma. Mas a Posição X vai ser adicionada ao tamanho. Então olhe, posição X
devida. Por quê? Então estamos nos movendo do canto superior esquerdo de cada retângulo, e então estamos nos movendo no eixo X. Então eu estou indo Posição X plus size. Vamos fazer menos 10 apenas para vê-lo em pé e, em seguida, posicionar. Por que eu dirijo isso. Podemos ver que eles são, de fato, linhas
horizontais. A firma disto. Podemos ver que eles são perfeitamente apreciados. Agora vamos criar nossa aliança Dagon. Então, a primeira linha diagonal vai do canto superior esquerdo para o canto inferior direito , modo que o canto superior esquerdo ainda é posição X e posição. Por quê? E então o canto inferior direito é basicamente a largura e altura de cada quadrado ou cada célula do grande. Então ele vai ser posicionado X plus size posição. Por que mais tamanho? Porque estamos nos movendo da posição. As esposas de acento comem retângulo para a largura e altura de um prático. Agora posso ver que os temos aqui. Se novamente, se eu fizer menos 10 para cada, podemos ver que eles são realmente linhas individuais. Não, para a última linha do Daniel, vamos do canto superior direito para o canto inferior esquerdo. Então o canto superior direito que já criamos quando criamos as linhas horizontais, que vai estar se movendo no eixo X, então vai ser este. Então posição X posição inicial das linhas diagonais vai ser a posição X mais o tamanho. E então não vamos avançar para o acesso Y. Então são armas para estar em posição. Por quê? Para a posição inicial, e então vamos por aqui. Então, o canto inferior esquerdo vai estar se movendo no acesso Y. Então, o que fizemos aqui e mantendo o eixo X como seu Então estamos fazendo atos de posição porque estamos mantendo-o ou não se movendo nesse acesso. Mas estamos a avançar para o acesso Y. Não é tão complicado se você licitar depende disso. Mas, por enquanto, pratique comigo, e então você será capaz de entender por conta própria. E agora temos linhas do lado oposto. Ok, agora que temos nossas quatro linhas diferentes, se eu realmente incomum todas essas, nós podemos ver um design muito legal também. Mas não vou aceitar isso. Então não vamos ficar com isso? É que eu vou fazer um pequeno exemplo de probabilidade. Usando a sucção aleatória l criar fluiu. Eu vou chamá-lo de nosso para aleatório e então aqui eu vou Teoh obter um valor aleatório de 0 a 1, então ele vai me dar um vale flutuante de 0 a 1, que significa que nós contratamos para igual probabilidade para criar essas linhas. Então, será 25% de chance de cada uma dessas linhas aparecer para que isso aconteça. Eu vou fazer se o nosso é menor ou igual 24,25 foi apenas 25%. Você também pode fazer, Ah, centenas e depois fazer 25 aqui se isso torna mais fácil para você entender. Mas eu gosto de ir com um, e eu vou te mostrar uma maneira diferente de fazer isso também. Então, se o nosso é menor igual a 25%. Então havia um 25% trans desta linha para aparecer, e se eu rodar isso agora, você pode ver que na verdade é Hedden em alguns pontos. Então aqui não há nenhum leão aqui. Há uma linha vertical. Vamos realmente fazer uma das linhas diagonais de tema porque é muito mais simples de ver. Você pode ver que alguns deles estão realmente escondidos, então há na verdade 25% de um desses passos de linha diagonal aqui. Certo, vou manter o 1º 1, então estamos organizados e não esquecemos nada. E depois, para o 2º 1, vou fazer outra coisa. Se assim for, acabamos com 0 a 25%. Agora, vamos de 250,26 ou algo maior que 0,25 a 50 para o segundo trimestre. Então já verificamos por menos ou igual. Eu só vou verificar por um maior do que porque ele vai colidir se eu fizer ou igual aqui também, já que eu estou usando o mesmo número e nosso é o meu padrão igual 50%. Então, agora, se for maior que 25% em menos de 50%, significa ainda 25% trans. Então vai ser esta linha, e então eu vou fazê-lo. Else F R é maior do que 50% e nosso é menor ou igual 75%. Então é outra chance de 25%, e finalmente vai ser a última. Então agora eu posso ver que temos um design muito divertido, e se eu remover o retângulo, podemos ver que temos um ótimo design. Agora eu quero consertar uma coisa porque este é um olhar, mas o que eu criei é um pouco diferente agora. Se eu trazer de volta os retângulos, você vai descobrir que as linhas horizontais e linhas verticais não estão no centro de cada retângulo lá na borda. Então, para fazer isso parecer o exemplo realmente criado, eu quero mover cada uma dessas linhas horizontais e verticais para o centro fora do retângulo. Porque, você vê, as linhas diagonais estão realmente se movendo através do centro. Então, seria bom se as linhas verticais e as linhas horizontais também se movessem pelo centro. Então, para mover cada uma dessas linhas verticais ou assim linhas horizontais, vamos ter que movê-las pelo tamanho dividido por dois. Então mova-os pela metade do tamanho do retângulo. Ok, então se olharmos para este, por exemplo, se você quiser mover isso da Posição X e posicionar o porquê deste retângulo, que é um canto superior esquerdo, Teoh este site
, Teremos que adicionar o tamanho dividido por dois a esta posição X. E então também queremos mover a exposição final por tamanho, dividida por dois. Então, se eu for aqui, eu faço plus size dividido por dois. E para a exposição final também e você executá-lo, podemos ver agora que as linhas verticais estão realmente no centro de cada retângulo. Vamos fazer o mesmo para as linhas horizontais, que estão se movendo no acesso branco. Então estamos realmente movendo cada uma dessas linhas horizontais para aqui. Então o porquê está ficando para baixo por tamanho dividido por dois. Então eu vou fazer posição inicial,
posição por quê, mais suspiros divididos por dois e o final. Por que posição para adicionar a ele? Tamanho dividido por dois. Então, se eu passar por aqui posição, por que posição inicial vai estar em posição. Por que mais tamanho dividido por dois e, em seguida, este também. A posição final vai passar para o meio da direção, e agora está mais perto do que tínhamos no início. Mas uma vez que isso é aleatório, não
terá o mesmo exemplo de cada vez. E se eu removi o retângulo agora, podemos ver que é muito melhor. Nós também podemos mudar o fundo bem treinado o acidente vascular cerebral para branco para fazer seu primeiro exemplo. Se você quiser o mesmo design uma e outra vez, você pode adicionar a sementes aleatórias. Você pode adicionar qualquer número aleatório aqui. Basta saber que dentro da semente aleatória, cada vez que você colocar zero vai ser o mesmo resultado exato. E agora, se eu executar isto, vamos ter um desenho aleatório. Mas agora, se você ficar de olho em uma seção do projeto para ver que ele vai ser o mesmo uma e
outra vez. Embora tenhamos um número aleatório aqui, ele está mantendo o mesmo design porque você tem um assento aleatório para ele. Então você está dizendo que eu quero esse projeto todas as vezes. Então, se você quiser talvez o assento aleatório design 10 e vai ser um design diferente. Mas se você quiser voltar para o design que você gostou de um grande, hum, zero, então você pode facilmente voltar para ele. Eu gosto Teoh realmente criar um número aleatório para esta semente aleatória e, em seguida, imprimi-lo para que eu possa apenas executá-lo e ver todos os desenhos e, em seguida, o que eu gosto eu apenas salvar o número que é impresso no cônsul e mantê-lo de lado. E então quando eu quero realmente imprimir o design ou fazer algo com o design, então eu apenas voltar para aquele assento aleatório. Então esta é uma boa maneira para você. Se você for contratado para criar um design, volte
ao seu design original que você deseja. Ok, há potencialmente uma variável diferente que podemos criar, que é a contagem ou o número de colunas e linhas. Então eu vou discretar isso para que possamos ver a dor de design de um tamanho diferente de linhas e colunas. Eu vou ter o mesmo para o sotaque y. então eu vou começar com 10. E então eu vou substituir aqui, e então vamos ver que nós temos o mesmo design, especialmente porque nós temos assento aleatório aqui também. E eu vou mantê-lo apenas para que possamos ver o mesmo design com o mesmo aleatório Veja, Não, se você fizer este 50 o design vai mudar é porque os valores de entrada são alterados. Este loop está realmente indo cerca de 50 vezes, mas o tamanho de cada célula ainda é dividido por 10. Então ainda são 10. Vender 10 linhas em colunas por sua vez. Então eu tenho que substituir isso por contagens também. Agora você pode ver que é muito denso. Então, ou você muda o derrame, espera talvez dois, ou você pode mudar o tamanho do campus. Ou você pode mudar isso talvez 20. Então, sim, brincar com ele e ver o que ele pode criar com isso. Agora, eu disse a vocês que eu vou mostrar um exemplo diferente usando aleatório para dar diferentes probabilidades sem realmente fazer porcentagem, porque eu vou comentar tudo isso para fora, e então eu vou criar outra função aleatória. Mas desta vez eu vou realmente chamá-lo e e eu vou lançá-lo em um inteiro para que você
possa usar a função entrevistador para envolver o aleatório em torno dele, para transformá-lo em um inteiro para converter o float em um inteiro. Ou você pode simplesmente lançá-lo em interesse para que você possa apenas fazer parênteses e dentro dele inteiro antes do valor que você deseja lançá-lo em onde um inter. Então, basicamente, você ainda está se convertendo, e então eu vou fazer porque eu fiz. Quero ter quatro rotações diferentes para as linhas. Agora, o que isso está retornando é um valor de 0 a 3. Então ele está retornando 0123 que são quatro valores foi porque ele é realmente piso. Os valores estavam obtendo apenas um valor de 0 a 3. E se publicarem isto, vamos ver que temos o 01 e depois teríamos de ter contigo em três. Mas nunca teremos quatro porque os números do ar pausaram. Então o arredondado para baixo ok, podemos usar isso agora em, se condicional. Então, Aiken Dio, se for, é igual a zero. Eu vou fazer uma coisa e, em seguida, tudo servido r é igual a um, mas também são iguais a dois. E por último, você pode fazer outra coisa se r é igual a três ou porque sabemos que existem apenas quatro valores . Eu posso sentir mais porque eu sei que os quatro valores serão sempre três, e então você pode colocar todas as suas funções de linha aqui. Então vamos fazer isso e eu vou voltar para 10 para que possamos ver projetado melhor. E se eu rodar isso agora, é o mesmo e eu estou indo para incomum para derrame. Espere. E temos o mesmo desenho que tínhamos antes. Então você pode escolher porcentagem. E para este
, sempre será uma probabilidade igual. A menos que você diga que se r é igual a 011 que eu quero esta linha. Se R é igual a 12, talvez você queira fazer um transes e então você dá três transes para que isso apareça. E então, ah, terceiro dos Trans é para este passo seu e Kurt. Para isso e eles, o resto terá o terceiro. Então, cabe a você o que você quer usar, mas eu vou te dar as duas opções e sinta-se livre. Teoh Apenas o que é fácil de usar para Você é o único que faz mais sentido para você agora no próximo exemplo para aprender mais sobre funções de forma
34. : para este próximo exemplo. Estamos aprendendo sobre a função de ponto, que é outra função de forma, e vamos demonstrar classes também. Então vamos criar este andarilho aleatório. Então vamos voltar ao design animado desta vez antes de eu criar a classe, eu quero criar o que a classe vai fazer. Ok, então vamos reiterar sobre o que fizemos e o exemplo de introdução e flutuação para começar a trabalhar um machado na minha posição e então, dentro das funções de desenho, eu vou soltar pontos em vez de uma elipse ou um círculo. E o ponto leva apenas dois argumentos, e você pode vê-lo aqui espera parâmetros como float e float. Mas lá está indo para o sotaque y e então eu vou usar X por um valor aleatório, algum doce negativo para três, porque eu queria ir e voltar, e então eu vou fazer a mesma coisa para o porquê agora, se eu executar isso, veremos um andador aleatório se movendo, mas é muito pequeno, então vamos aumentar o tamanho do traço porque o ponto só tem um traço. Não tem nenhum Phil, então vou fazer um derrame. Espera de três. Vou começar o Accent. Por quê? E o centro da tela. Então nós a concedemos para que agora eu possa ver um armário aleatório. Agora, isso já é legal, mas queremos criar uma matriz disso. Nós não temos um tipo de dados chamado ponto, então podemos criar uma matriz fora dele para criar uma infinidade de caminhantes aleatórios. Então temos que criar esse tipo de dados, a fim de criar que vamos criar uma classe em vez de criar a cláusula no mesmo arquivo como fizemos antes. Vou apenas criar um novo toque, já que aprendemos sobre vários arquivos e é isso que eu faço. Normalmente você pode chamar os pontos de classe ou você pode chamá-lo de Walker. Vou chamá-lo de Walker porque estamos criando um andador e depois para a aula , vou ligar para ela, passear com ela, e vamos fazer exatamente o que fizemos aqui. Mas agora vamos colocá-lo dentro da turma. Então inicializamos uma posição de sotaque, então eu vou fazer isso. Seria aqui é bem, e depois dentro do construtor. Eu realmente quero inserir o valor. Eu não quero isso. Teoh, fique aqui. Embora eu possa. Mas eu vou apenas fazer flutuar, sublinhar X para um sublinhado diferente, muito ossudo e flutuar. Por quê? Então não nos confundimos. Então eu vou dizer X é igual a sublinhado X. Então o que eu colocar aqui. Quando eu chamei a classe mais tarde, eu quero colocar dentro deste X nativo para a classe e, em seguida, o mesmo para o porquê e agora o que eu fiz exatamente aqui exibindo-o com peso do curso e o ponto aqui eu vou
fazer dentro do meu função explicar. Sinta-se livre para chamar esta função do que quiser. Mas eu costumo ir com isso por eu vou tomar o derrame. Espere. E eu vou apontar para X e y também. Mas desta vez o X e Y são realmente retirados das propriedades locais e não de fora . Não, tem uma função de atualização, função ou remoção. E aqui vou fazer o incremento Teoh. Os valores de sotaque y. Então esse é o meu movimento. Então eu vou colocá-lo dentro da atualização. E agora eu vou remover tudo isso e vou recriá-lo, usando Walker para saber que eu tenho um armário que eu vou chamar ele vai estar aqui como um
tipo de dados . E porque o meu andarilho é um ponto, vou chamar-lhe “Não”. Dentro do conjunto de funções, vou inicializar o meu ponto. O Walker. Dissemos Teoh criar uma instância. Podemos chamar o Point e dizer “New Walker”. Agora temos argumentos. Então novamente tocado, inicializá-lo. Vou terminar sábio no centro. Eu vou dizer o que Dividido por dois dividido por dois. Então este é o meu valor inicial para X e Y dentro do meu andador. Então isso vai ser com Erbitux divino. Isto é alto dividido por dois. Então isso é basicamente onde isso vai começar, e então eu vou incrementar para cada quadro. Então eu vou ter que chamar pontos aqui, então eu vou exibi-lo como fizemos antes. Nós realmente desenhar o ponto, e então nós vamos tol alimentá-lo somente depois de mover o ponto. Então eu estou basicamente chamando tudo isso onde eu chamei a função de exibição e eu estou chamando tudo isso onde eu chamei a função de atualização. E agora, se eu fugir
, deve fazer exatamente a mesma coisa. Então ele ainda está andando aleatoriamente pela tela, começando com dividido por dois e duro dividido por dois. Então, o centro da minha tela Não, vamos criar uma matriz de pontos. Vou criar uma matriz. E agora vou mudar esses dois pontos. E antes que eu possa inicializar minhas instâncias, eu tenho que inicializar minha matriz. Vou chamá-lo de Neil Walker, e então você começa com 100. Não, dentro de “A” para o loop. Vou de zero para o comprimento dos pontos. É 100 e eu estou indo Teoh, criar uma instância para cada ponto na matriz. E então farei a mesma coisa quando eu ligar. Não. Se eu executá-lo, eu tenho um monte de armários aleatórios agora para torná-lo ainda mais interessante, eu vou fazer a cor do traço um preto desbotado. Então eu vou mudar a transparência, também. Talvez 100. O que é Trey 100? Por enquanto, é muito melhor. E agora, se eu fizer até 10 é mais borrada, e parece mais uma pintura do que apenas pontos aleatórios se movendo pela tela. E se você quiser vê-lo não tentar. Então, se você quiser ver esses pontos se movendo, você pode apenas redefinir o fundo aqui e talvez remover a transparência para que você possa vê-lo. Então esta é uma simulação legal que talvez você possa mudar a aleatoriedade ou usar o ruído para criar um rebanho. E isso é algo que é um exemplo que você pode ver em uma das referências que eu
vou falar mais tarde, que é a natureza do livro de códigos de Daniel Shipman. Certo, vamos voltar para você, por exemplo. Eu vou realmente fazer este 30 e então eu quero provar o fundo. Ótimo. Agora posso fazer mais com isso. Claro, você pode dar-lhes posições iniciais aleatórias. Então, uma vez que você tem isso dentro de um loop for,
você pode substituir isso por uma posição aleatória X e Y, e assim cada um vai começar em uma posição aleatória diferente. Isso também pode dar uma aparência diferente. Na minha opinião, este é o maior passo. Uma vez que você chegar a criar suas próprias classes, você já abriu um monte de portas para si mesmo, e você pode criar um monte de desenhos diferentes apenas com classes sozinhas. Então você tem que se sentir livre para reiterar sobre isso para criar seu projeto final agora para o próximo exemplo de
forma.
35. : para este exemplo, vamos criar uma forma personalizada. Então aprendemos tudo sobre como criar nossas próprias classes, mas usamos as mesmas formas que são nativas ao processamento. Desta vez, vamos criar nossas próprias formas usando a facilidade de vergis. Agora, para criar uma forma personalizada. Há uma classe chamada P forma e processamento e P forma começa desta forma. Então você cria a classe e, em seguida, você dá um nome exatamente como você fez com qualquer tipo de dados. Então eu vou chamá-lo de forma, e então você inicializá-lo chamando seu nome de variável e chamando a função criar formas, criar forma, criar um compartimento para sua forma. Vai abranger tudo o que você vai criar,
e então para realmente começar a desenhar seus tons, eles vão dizer forma e, em seguida, começar a fé, e você vai terminar com forma ponto e e entre começar a forma e e forma, você vai tentar ou projetar, e até mesmo seu preenchimento e traço vão entrar aqui. Então vamos começar com esse ponto de forma que Phil vai me fazer sentir preto por enquanto. E então vamos começar a usar a facilidade do Burgess. Então sobre Teses estão os pontos que você coloca em sua tela. Esse processamento acaba por traçar uma linha no meio. Então, se eu desenhar os primeiros veredictos na posição 00 e então eu desenhar o 2º 1 na largura e altura e depois executá-lo, nós não vamos ver nada porque nós temos que dirigir na tela. Então agora estamos criando isso dentro da forma do compartimento, mas nós realmente não desenhamos. Então, para dirigir, tomado apenas para usar a função de forma e, em seguida, colocar a forma dentro dele e, em seguida, colocar a posição
inicial. Então eu vou fazer a posição inicial em 00 porque nossa linha vai expandir a partir do 0.2 a largura e altura. Então eu estou basicamente posicionando a forma maior ou o retângulo onde a forma vai entrar dentro dela às 00 e eu posso ver a linha realmente indo do canto esquerdo da parada para o canto
inferior direito. Mas esta é a forma que podemos estabelecer usando a função de linha. Então vamos criar uma forma que é um nativo para processar. Vou criar um arco. Você pode copiar e colar os números exatos que estou escrevendo aqui, e eu vou tentar explicar o que estou fazendo. Então eu vou começar às 00 porque então com a função de forma, ele pode mover a forma para qualquer posição que eu quiser. E vamos fazer isso realmente mouse X e mouse. Tudo bem, então você pode ver a forma se movendo. Mas, em seguida, a maioria dos X e mais, por que apenas trabalhar dentro da função de desenho? E porque eu não quero nada para desenhar, Eu vou deixar que o fundo dois branco cada vez. Ok, então se eu realmente voltar para com em altura, eu posso mover minha forma para que eu possa mover o canto do meu retângulo onde minha forma está. Não, vamos começar a forma do arco. Então, a fim de fazer a nossa forma de arco, eu vou começar às 00 no campus, e então eu vou me mover para a direita 30 pixels e para baixo 30 pixels que irá criar uma linha
diagonal. E se eu comandar isso, você pode ver que eu tenho uma pequena vida de Daniel. Então esta é a primeira linha do nosso barco, e eu vou parar isso às 00 por agora, antes que possamos movê-lo. Então você pode para que eu possa demonstrar sobre isso lá ele admite em 30 o 1º 1 em tais 00 e , em seguida, o 2º 1 é em 30 e 30. Agora eu quero voltar para cima para criar a outra linha do meu arco. Para fazer isso, vou ter que mover 30 pixels até aqui e voltar para zero no acesso branco. Então daqui até aqui
, são 30. E então eu quero mover 30 novamente para dar o mesmo espaçamento. Então eu vou ter que ir para 60. Então vai ser 60 da esquerda e zero, então vamos subir aqui. Então isto é 60 e zero. Agora você pode ver que nós descemos 30 e então nós mudamos para olhar para a direita 30. E agora estamos voltando para zero e para a direita por 30, o que significa que são 60 a partir do extremo esquerdo. Agora eu quero descer aqui para desenhar a linha certa do barco. Agora isso, sabemos, é resistente. Significa que eu quero descer mais 30, o que significa que são 60 e então eu quero
do acesso X do ponto zero eu quero 60 aqui. Então eu vou manter o eixo X onde ele está agora, então ele vai ser 60, mas então eu vou descer 60. Então isso é 60 60. Agora, vamos fazer isto primeiro antes de realmente vermos. Agora o preenchimento está realmente fazendo a direção certa, porque antes de pensar, eu quero subir e então o campo estava aqui em cima. Mas agora que estamos caindo, ele sabe que é aqui que a forma está indo. Ok, agora eu quero voltar para cá,
autoridade e, em seguida, subir 30. Então ele vai estar de volta às 30 e 30. Então agora nomeado, na verdade aqui. Agora eu vou voltar 20 no eixo X e 60 pixels para baixo. Agora temos uma treta. E se eu realmente voltei para mais sotaque sabe por que você pode ver meu arco se movendo para que eu possa ver que ele está realmente completo agora para desenhar na tela. Vou remover o fundo porque estamos criando um exemplo de desenho para isso. E agora eu posso desenhar. Muitos barcos iam mudar a transparência para isto, digamos 50. Então, agora, se eu desenhar, eu realmente vejo. Não, se você notar aqui, você pode ver que cada arco tem um golpe faltando no lado esquerdo. Agora, a razão para isso é porque nós não fechamos ou moldamos. Nós podemos fechá-lo usando voltar para 00 com o fim, ou podemos apenas fechar aqui e ele vai fazer o trabalho para nós. Ele irá para o primeiro ponto e fechará a forma. Então agora você pode ver que nós realmente temos a linha à esquerda. Então está trabalhando agora para tornar isso ainda mais interessante. Eu vou virar as cores, então eu vou encontrar o background zero e eu vou fazer o Phil 2 55 Eu vou
adicionar um golpe de branco, nunca executar isso. Vamos ter um programa de desenho agora. Toda vez que eu vou fazer isso, nós vamos ver isso. Bo aqui vai ser muito opaco, porque é antes de movermos o mouse.
Na verdade, está desenhando muitos e muitos arcos um em cima do outro, porque nosso programa está
na verdade a uma taxa de quadros de 60 quadros por segundo .
bastante rápido. Então ele está desenhando muitas e muitas formas antes de mover o Mouse X. E é por isso que em um segundo ele queria mudar isso. Vou primeiro mover isto para uma função para limpá-lo. Vou chamar-lhe Bo, e vou usar tudo isto dentro da minha função de arco. Ok, eu vou chamá-lo aqui porque nós realmente criamos a forma aqui. Então, o que quer que esteja aqui vai agir como físico. Está aqui e eu estou desenhando. Então agora é o mesmo programa que tínhamos antes. Mas desta vez, em vez de fazer isso porque se esse Bo opaco que está arruinando nosso design, eu só vou desenhar as formas Se o mouse for pressionado para que não seja pressionado, eu quero desenhar o destino. E agora nós não temos este Bo aqui e agora toda vez que eu realmente clicar, nós vamos desenhar. Mas depois vou mandar o Teoh rodar o programa várias vezes, a fim de obter o design que eu gosto. Então vamos dizer que eu quero tirar um golpe fora de arcos e isso não está parecendo legal para mim
porque está indo para baixo e eu queria estar mais no centro, então eu vou usar o evento manter pressionado. Nós conversamos sobre isso antes, mas nós nunca realmente usamos em um exemplo. Sempre que usamos manter descanso, temos que verificar quais chaves, porque então qualquer tecla que você clicar vai trabalhar no dedo do pé. Vamos começar com qualquer chave e, em seguida, vamos especificar. Agora eu quero redefinir o plano de fundo. Toda vez que um caso for pressionado, vou desenhar o fundo e agora vou desenhar meu arco. Não está bonito. Alguma arma. Basta clicar em qualquer tecla e vai funcionar agora. E se eu quiser apenas uma chave para trabalhar com isso Agora estou clicando neste espaço agora. Desta vez eu estou realmente clicando de Da próxima vez eu estou realmente clicando T. Isso não é prático, especialmente se você quiser usar várias teclas para diferentes funções. É por isso que vou usar apenas a barra de espaço para remover ou redefinir o plano de fundo. Mas a maneira que você pode fazer isso é usando e se condicional, e então há uma variável nativa dentro do processamento chamada Chave. Então isso tem qualquer valor da chave. Então, se você imprimir isso, você vai obter o valor da chave que você está clicando e então eu vou rastrear seu igual ao espaço, e então eu vou redefinir o plano de fundo. Então, agora, se eu clicar no número três, não vai acontecer, é se eu clicar na carta que pede. Não vai acontecer, mas se gostar desta barra de rosto, vai ficar claro. E agora talvez eu esteja feliz com esse design. Posso usar uma chave diferente como s, por exemplo, para salvar meu projeto, mas vamos falar sobre economizar no trator. Por enquanto, criamos um design que queria criar. Eu sei que usar vórtices e usar uma função de forma para desenhar na tela sem
saber exatamente onde as coisas estão é um pouco difícil. Mas vamos ao Teoh mais tarde e ao módulo tipo. Saiba mais sobre como importar seus designs do ilustrador ou de qualquer software vetorial que possa exportar no SVG. Por enquanto, estamos feitos com o módulo de forma da seção básica de design. Em apenas seis exemplos, aprendemos a criar uma variedade de formas para que você possa criar suas próprias formas. Você pode criar uma linha círculos Lipsky aqueles sozinho pode criar. Isso sozinho pode criar uma enorme quantidade de designs, e não pode esperar para ver você usar qualquer um desses em seus projetos finais. Em seguida, vamos falar mais sobre cor e design.
36. Cor: Exemplo 1: Neste primeiro exemplo de cor, vamos falar sobre RGB versus crocante. Ele acabará criando esse design. Veremos o mesmo design em RGB, e então veremos o design em interesse. Bmo. Então, esses modos de ar para cor rgb representam vermelho, verde e azul, como aprendemos. Mas há um modo de cor diferente que ainda não falamos, e é chamado Endereço ser para matiz, saturação e equilíbrio. Então, basicamente, ele passa pela matriz de cores, e então a saturação é o quão saturada essa cor está. Então, se não houver saturação do que será em escala de cinza, se houver alta saturação, será a maior saturação dessa cor. Mas então, para brilho, é como se você estivesse adicionando branco e preto ao seu design. Então, quanto mais preto você adicionar, que é menor o valor do brilho que ele está indo, a cor vai ser mais escura. E então quanto mais branco você adicionar, ou maior o valor do brilho como então você vai ter uma cor mais brilhante, que tem um pouco mais de luz. Vamos primeiro criar o design em preto e branco, e depois começaremos a colorir. Nós vamos precisar de um sotaque y posição porque nós vamos desenhar linhas aleatoriamente neste guindaste e eu vou precisar de Lupas bem, e eu vou começar com 100. Então, ter X em uma posição aleatória de zero a sagacidade. E então por que vai estar em posição aleatória? Qual era a sua altura? E então eu vou fazer um traço com o valor aleatório de 0 a 2 55 Então isso vai ser grande escala que vai ser aleatória. Eles podem realmente ver todas as linhas que estamos tentando. Então eu vou desenhar as linhas em X e Y, e então nós vamos dar-lhes um comprimento de 10. Então vai ser a posição da ONU vai ser de X mais 10. Então ele vai passar da exposição da exposição inicial para 10 mais o X.
Isso vai ser a posição final e, em seguida, o mesmo para a vida. Então nós vamos ter um monte de Dagon Alliance, e eu quero que isso seja estático, algo para parar o loop, e eu vou aumentar o derrame. Espere, talvez três. Certo, então temos linhas aleatórias na tela com uma cor aleatória de um espectro em tons de cinza. Agora eu também quero girar o s apenas para obter o design que temos e novamente para girá-lo . Eu vou apenas fazer push matrix para criar e você camada para cada um. Agora, se eu executar isso sem amigos, liderança estava girando. Vai ser exatamente a mesma coisa. E se eu fizer sementes Franken apenas para ver o mesmo design, isso realmente não está mudando, então ele está realmente criando uma nova camada. Mas nada é genuíno porque cada camada em cima da outra. Mas agora eu quero mudar a posição de cada camada e a rotação. Então eu vou mudar a posição com base no sotaque por ser eleito traduzir, realmente fazer o movimento de cada linha entre eles. Eu vou deixar estes às 00 de cada campus, e então vai ser 10 porque a Europa menos feito é basicamente 10. Então, se eu executar isso, vamos ver que é exatamente a mesma coisa. Então não mudamos nada. Ainda temos cada um deles em posição. Você pode ver que é a mesma coisa, especialmente essas duas linhas são a mesma posição porque temos sementes aleatórias. E agora vou girar. E isso vai mudar o todo e novamente em torno dele, mal de 0 a 2 pi entre eles, um círculo completo para uma rotação completa e que tinha um olhar mais interessante. Se eu aumentar isso para 400 ele vai me dar um olhar mais interessante porque há mais para brincar. Mas vamos mudar o fundo para Branco. Você vê as coisas melhor e vamos introduzir a cor agora. Então, em vez de dizer,
uh, uh, derrame. Então, em vez de dizer um aleatório indo de 0 a 55 apenas para um parâmetro, vamos adicionar os outros dois parâmetros. Então agora nós vamos ter R, G e B, e eu vou fazer a mesma coisa para ambos o valor aleatório de negociantes para 55. E se eu executar isso agora, nós vamos ter um monte de cores, e como você pode ver, as cores são muito brilhantes. Mas agora vamos mudar isso. Teoh ele apenas ser fosso e ver como esta diferença. Agora eu vou mudar a melodia de cor dentro da porcentagem de função. E então só para que não tenhamos que mudar tudo isso aqui, você pode deixar os valores padrão. Mas eu vou dizer que eu quero que o valor mais alto para você seja 255 para saturação para ser 255 e para o brilho para ser 255 minutos para o Alfa Valley. Vou deixar que seja só um. Então vai ser de 0 a 1 em uma barriga flutuante. Agora eles mudaram o modo de cor, e se eu rodar isso, vamos ter uma cor diferente. Temos mais negros, estaremos aqui. Hum, e nós temos algumas cores mais brilhantes agora. Podemos ver isso melhor se eu usar isso para saturação total cada vez e brilho total, cada vez que você pode ver que ele é muito, muito brilhante porque agora ele está apenas olhando através da matriz de cores que ele tem. Mas então ele está dando a mais alta saturação e o mais alto brilho. Agora, se eu remover 2 55 aqui e colocar zero então não, não
há brilho e as cores vai ser preto porque não há
nenhum branco agora para trazer de volta para 255 e eu mudei a saturação para zero. Vamos ver que não há nenhuma cor porque 255 é muito brilhante. Então agora é branco. E porque não há saturação, não
há cor. Vamos brincar com o brilho humano. Eu vou apenas fazer brilho 100. Então agora vamos ver que está um pouco acinzentado. E se eu chegar ao zero, claro que teremos preto. Eu vou fazer 100, então eu vou aumentar a saturação de um pouco. Vou ver um pouco mais de cor, saber se aumentá-lo para 200 vamos ter um pouco mais de cor para eu vou fazer 2 30 Mas desde que o brilho ainda é muito escuro vai aumentar isso um pouco também. Agora nós temos uma cor de design infantil, você sabe, eu vou voltar ao
aleatório, aleatório todos os, mas eu vou para Hugh de talvez 100 250. Então esta é a matriz de cores. Então, se eu for de 102 150 m escolhendo apenas as cores. Se eu for de 0 a 55 eu estou escolhendo de toda a matriz. Vamos fazer até 50 e você verá que tudo vai ser lido. Ok, então a maioria está realmente certa. Mas se eu for ainda mais baixo, talvez um 20. Sim, a maioria agora é vermelha, e há um pouco de audição laranja lá. Ok, eu vou fazer 255 para separação e correção, e então podemos ver que é muito brilhante. Não. À medida que aumentam
isso, ele vai adicionar mais cores de 0 a 100. E eu quero fazer de 100 a 150. Agora só estamos recebendo verdes e azuis porque você só está usando o coração das
cores chegadas . Vamos ver o que acontece se eu voltar para o RGB, então eu vou apenas comum isso porque o modo de cor de falha é a nossa TV, você sabe, se eu executá-lo, você pode ver que é uma paleta muito diferente. A razão para isso é porque ele está ficando cheio de grão e azul cheio, mas então ele está se aproximando em valor de 100 a 150. E se eu remover as sementes aleatórias e aumentar isso um pouco, vamos ter um pouco de um paladar diferente só porque agora temos mais vermelho para brincar. Vamos, na verdade, adicionar ainda mais vermelho. Então temos de 202 150. Então esse é um valor
muito, muito grande para escolher. E se eu diminuir pelo menos um destes para 10, então estamos ficando roxos e estamos ficando porque estamos ficando mais vermelhos do que estamos ficando verdes e azuis. E se eu também reduzisse isto para 1 55, ficaremos ainda mais certos. Jogue com cores para ver a diferença entre RGB e crocante. Um monte de pessoas brincam com interesse ser se eles querem mudar a tonalidade, mas eles querem manter a saturação e brilho porque se você randomizar r g e B, você vai ter um olhar diferente do que você está indo para obter de endereço ser eso. Talvez você queira manter a prontidão de sua cor, mas então você está você quer jogar com as notas de vermelho então jogar com a saturação ou o brilho, então nós vamos ter mais de um olhar monocromático. Agora, vamos ver outro exemplo de cor para entendê-lo um pouco melhor.
37. Cor: Exemplo 2: Mas se para este exemplo, vamos falar sobre interpolação de cores, então, no outro exemplo, vamos ver a diferença entre novamente. Audrey Beatrice fala em termos de cor. Interpolação. Então eu disse que você vai ter talvez um design monocromático se você usar a velocidade de interesse. Ok, então vamos criar este exemplo de interpolação de cores para saber mais sobre cores. Para isso, vou criar uma grade de uma linha e 10 colunas. Então, para as grades, eu vou Teoh precisa mais longe. E não vamos precisar de um aninhado para um loop porque só vamos criar uma linha e depois 10 chamadas, porque o que adicionamos aqui e agora vamos fazer a mesma coisa que fizemos antes. Então o retângulo vai ser no tamanho multiplicado por I e, em seguida, o tamanho e, em seguida, zero porque nós não estamos movendo rosa sábio, e então ele vai ser dimensionado em tamanho para aqui. E o tamanho vai ser dividido por 10. Porque queremos 10 chamadas. Nunca execute isso. Temos uma fileira de 10 colunas. Está bem. Em vez de ter um tamanho para a altura também, eu vou apenas fazer isso a altura da tela porque você quer ver a
interpolação de cores em todo o campus. Agora eu vou dar-lhe um preenchimento de cor, e eu vou criar cor agora,
então a cor vai ser do tipo de dados de cor, ou a variável de carvão vai ser um tipo de dados de cor. E agora, em vez de dar apenas um valor ou uma cor, vou interagir entre duas cores. Então, a fim de interagir entre duas cores, vamos usar a função de cor Senhor em Isso vai exigir duas cores e, em seguida, uma quantidade. Então as duas cores que vamos criar aparecem porque não faz sentido criar na memória de novo e de novo são duas cores porque nós vamos escolhê-las apenas uma vez. Então eu vou chamar o primeiro 1 chamada um, e eu vou dar-lhe um valor, em
seguida, uma chamada para, e eu vou dar-lhe um problema diferente. Então eu já tenho duas cores prontas, então eu vou apenas copiar e colá-las. Você é livre para escolher suas próprias cores para praticar com interpolação de cores e então eu
vou usar Coal Juan e ligar para aqui. Então eu quero interagir da cor um para cor, também. Quantidade mentirosa. Então, quantidade. Nós vamos criá-lo usando o grão que temos quantidade basicamente vai de 0 a 1. Então, se eu colocar zero, por exemplo, aqui e depois executá-lo, você verá a primeira cor. E então se eu colocar um, você verá a última cor que eu escolhi. Então eu escolhi de laranja para amarelo, mas eu quero que as cores realmente criem ingrediente. Então eu queria passar do laranja para o amarelo. Você queria fazer isso? Eu vou usar a variável de índice ou a variável I dentro do meu loop for para criar esta variável aqui. Um homem poderia criar esta variável chamada quantidade, uma vez que vai de 0 a 1. Então isso é um valor flutuante. E então eu vou usar outra função chamada mapa. Então mapa basicamente mapeia um conjunto de valores para um intervalo diferente, de modo que ele muda valores de um intervalo para outro. Então agora vou mudar o alcance do meu olho. Meu índice de sua gama original, que é que é 0 a 10 Teoh o novo intervalo, que é 0 para 1. Então agora toda vez que eu zero, vai ser zero aqui nos benefícios um. Vai ser 10.1 aqui para a quantidade, e então para dois vai ser 20.2 e assim por diante e assim por diante,
disse, disse, eu vou usar a quantidade aqui em vez disso. E se eu executar isso, vamos ver um Grady int indo de laranja para amarelo. Isso sozinho pode criar uma enorme quantidade de exemplos. Então, usando talvez isso com um dos designs que criamos, como as linhas ou a rotação de linha aleatória. Exemplo. Você pode criar uma infinidade de cores apenas usando a função de cor de sinopse. Ali. Você pode brincar com as cores aqui em cima. Você pode mudar de talvez azul para verde. Você pode mudar de vermelho para roxo, e você pode ver a gama de cores jogando ao redor. Você pode até aumentar a contagem para talvez 20, mas então teremos que mudar
aqui também. Então, é melhor eu criar muitos uma variável chamada contagem e vamos torná-lo 20 e, em seguida, usá-lo
aqui e nós estaremos aqui. Então agora não temos que mudar os valores uma e outra vez em todos os lugares. E então nós também temos que dividir o com pelos condes. Mostrar o tamanho de nossas colunas está correto. Agora você pode ver que há mais cor aqui porque nós temos 20 e se eu remover meu derrame, você pode vê-lo mais de ingrediente. Mas você pode ver os retângulos aqui, então se você quiser um radiante muito suave, você pode basicamente fazer a contagem da largura. Então sobre fazer a contagem de 400 então vai ser um Grady suave termina porque agora 400 dividido por 400 é um. Então, cada retângulo tem apenas um pixels de largura
e, portanto, vai ser muito mais suave. E agora podemos ver que criamos um int ganancioso. Em seguida, vamos ver como isso funciona. Se o transformássemos em uma quantidade fecal de confiança
38. Cor: Exemplo 3: em nosso último exemplo de cor. Vamos explorá-lo. Confie em mim. Modo de cor. Um pouco mais. Desta vez, vou criar uma grade de três colunas e várias linhas, e vou mostrar a vocês como fazer isso agora. Então nós vamos ter loops aninhados de um exemplos anteriores. Sabemos que vamos precisar de variável de conta para esta vez. Eu criei o Conde. O sotaque conta. Por quê? Então porque eu quero um valor diferente para a Rosa das colunas. Já que quero três colunas, vou dizer que o Conde X será igual a três. Então eu vou criar 10 linhas para cada um. Então agora que temos o Conde X é diferente das contagens. Por quê? Eu também vou ter o ex dele em tamanho. Por que o tamanho X vai igualar o que é dividido por caras do Conde X. Por que ir para a altura igual é dividido pela contagem? Agora eu vou criar o retângulo que eu sou multiplicado pelo tamanho. X J se multiplica por tamanho. Por que os membros iam ser sexo de tamanho. Isto vai ser o tamanho. Por quê? Se eu ler isso, você pode ver que nós temos três colunas e virar rosa. Agora podemos criar a coloração. Copiei e colei a mesma coisa que fizemos antes. Mas desta vez, em vez de ir de uma cor para outra de duas variáveis aqui, eu fui de 0 para 255. E desta vez eu vou do zero para vir. Por quê? Então eu quero que a interpolação aconteça no acesso branco que eu estou usando J e eu disse que eu quero ir a partir dele valor zero para contar valor y. Então isso é de cima para baixo. E então eu quero mapear esse valor de 0 a 1 para a quantidade na interpolação. E então eu disse, o preenchimento para chamar, que é nossa variável de cor, e ele vai colorir meus retângulos agora. Como você pode ver, vai de preto para branco. Agora, para este exemplo, e quero olhar para ele só eu e não RGB. Na verdade, eu vou apenas mudar o modo de cor para me interessar, e eu vou fazer a mesma coisa para etch ou matiz, saturação e brilho para ir de 0 a 50 a 55. Eu não vou me preocupar com o valor Alfa porque por agora, isso é tudo o que precisamos. Se eu fizer isso agora, vamos ver uma coisa estranha. Isso porque mudamos o modo de cor de RGB. Então, o que é agora? Na verdade, está verificando ou o que realmente está fazendo. Vai de Hugh de 0 a 255 que é o mais baixo para o mais alto. Mas, na verdade, não há brilho nem saturação. Portanto, para o trabalho de matiz, saturação e equilíbrio do dedo do pé, vou usar uma função diferente. Eu vou usar a função de alerta e eu só vou aprender para os matizes e, em seguida para a saturação seguinte e, em seguida, para o brilho seguinte. Então eu vou chamar esse valor em vez disso. E isso vai retornar valor à tona e eu vou apenas arrefecer você para o valor. E então o brilho e a saturação serão os mais altos. Agora sou Lor Ping de 0 a 255 na Lee para a tonalidade. Então, desta vez eu não estou apenas agrupando usando a função de cor de sinopse, eu estou usando a função de alerta porque eu só quero interagir entre dois valores, você
também pode usar a função Lord para interagir entre duas posições. Uma ondulação. Mas eu estou usando isso aqui para ele situação e equilíbrio e ver como isso realmente parece e você pode ver toda a gama de cores está na verdade no campus. Agora. A razão pela qual eu criei três colunas porque eu quero mostrar Hugh na primeira coluna e, em seguida, eu quero mostrar-lhe saturação na próxima coluna. E então eu queria rever a mudança e o brilho na terceira coluna. Então vamos realmente usar um condicional e, se condicional, eu vou verificar se eu vou ser igual a zero, que é a primeira coluna. Quero que os trens de valor estejam na tonalidade do Mendel se eu for igual a um. Só a segunda coluna que quero preencher para ter qualquer Hugh. Vou usar zero para Red, e então terei o valor na saturação. Desta vez eu vou ter o mais alto brilho, e finalmente nós vamos ser, também. Mas eu não preciso escrever porque o último vai mudar o brilho vai
ter a maior ação sexual e depois Val para o brilho. Agora, se eu executar isso, você vai ver que a primeira coluna vai ter grandes mudanças. E, em seguida, a segunda coluna vai ter a saturação de 0 a 255 e, em seguida, a
última vai ser o brilho de 0 a 255. E se você mudar a tonalidade para qualquer um desses, então vamos fazer 150 para este. Ele vai ir do menos saturado para o mais separado na tonalidade de 150 que é aqui azul. Então, cabe a você. Qual a cor que você deseja escolher. O Ikan. Além
disso, talvez escolha uma cor diferente para este também. Então vamos fazer 200. Vai ser uma cor roxa e vai do menos brilhante para o mais alto brilho. Então, esta é outra maneira de você jogar com cores, interpolação e modos de cores. Talvez você queira ficar com o mesmo Hugh como aqui, mas você quer variar o brilho. Talvez queira ficar com um. Hugh aqui está bem e talvez brincar com a situação. Você também pode criar um valor diferente. Há um blerp ou interpelação diferente para cada um deles? Então, talvez para ele quando secretário em brilho e então você pode ter uma quantidade diferente. Então talvez use I Teoh Triple oito em termos de brilho e, em seguida, use J para intra placa Hugh . Isso também lhe dará uma aparência diferente. Brincar com ele dentro Me avise o que acontece com você. Mostre-me em seus projetos. Eu adoraria ver o que você cria com tribulação dourada e naves. Em seguida, falaremos sobre imagens.
39. Imagem: exemplo 1: Criamos
formas e escolhemos cores para os
últimos exemplos. Mas desta vez,
falaremos mais sobre imagens e
como você pode importar
qualquer imagem que você tenha tirado, talvez, ou qualquer imagem que você encontre
online em seus designs. Para isso, abordaremos
mais
sobre como os arquivos de esboço
são realmente criados. Então, para meu exemplo, eu tenho um arquivo chamado imagem. Na verdade, isso é criado
depois que você salva seu esboço. Então, sempre que você salvar seu
esboço, criará uma pasta com o mesmo
nome do esboço. Se você alterar o nome da pasta, esse esboço não abrirá. Você precisa ter o nome do esboço igual ao
nome da pasta. Em seguida, para adicionar imagens
dentro da sua pasta, você precisará
adicionar uma pasta chamada dados. Agora, nesta pasta de dados, você terá todos os arquivos e
importará para o esboço. Então, se você tiver um arquivo
de texto, um arquivo de imagem ou alguns arquivos
SVG sobre os quais
falaremos mais adiante
na seção de tipos. Você vai ter
que colocá-lo aqui. Isso não é criado por padrão. Você vai ter que
entrar na sua pasta de esboços. E é por isso que,
quando você está brincando, esboços relacionados a
imagens
ou qualquer coisa que você precise importar ou carregar
algo no esboço
, você terá que
salvar seu esboço e criar um dado arquivo no qual
você adicionará tudo o que você vai importar
para o seu esboço. Aqui eu tenho essa imagem. Você pode baixar essa
imagem em unsplash.com. Vou colocar o link para essa imagem exata na seção de
notas do vídeo. Sinta-se à vontade para
acessar o site e escolher a imagem
que você mais gosta. Então, vou escolher
essa imagem e a veremos agora assim
que
inserirmos nosso esboço. Então, para que isso funcione, vou ter que
salvar esse esboço. Agora, se eu abrir essa pasta, você pode ver que ela se chama
image1 e dentro dela está o arquivo de esboço. Agora eu preciso criar uma
nova pasta aqui. Vamos chamar isso de dados.
Dentro dela, eu vou copiar e colar
a imagem que eu tenho. Agora, dentro da minha
pasta de dados, tenho esse arquivo de imagem. Agora posso fechar minha pasta e agora podemos trabalhar
com a imagem. Para imagem, é meio
parecido com a forma P. Então, vou usar apenas a imagem
PPI como eu
uso qualquer tipo de dados. E então eu vou
chamá-la apenas de imagem ou abreviação da palavra imagem. E então, dentro da
minha função de configuração, vou carregar minha imagem. Vou dizer Carregar imagem e agora vou
usar o nome do arquivo. O nome do arquivo é uma string que você usará
dentro da imagem de carregamento. É por isso que, quando eu disse, uma das razões
pelas quais você usaria uma string é usá-la dentro da imagem de
carregamento ou ao carregar um arquivo de texto. Você também pode colocar isso dentro de uma variável chamada nome do arquivo ou qualquer nome que você
queira chamá-la. Mas acho que não há problema adicioná-lo aqui
porque é um nome curto. Você também pode alterar
o nome do arquivo e alterá-lo aqui, se
for mais fácil para você. Mas vou manter
o original coxo. Se eu executar isso agora, você não vai ver nada. A razão para isso
é porque, novamente, imagem é muito semelhante à forma quando criamos
a forma personalizada. Então, vou chamá-lo
dentro de uma função de imagem. Então eu vou colocá-lo em 00. Mas agora, se eu
executá-la, você
verá parte da imagem, porque a imagem
é incrivelmente grande, teremos que
redimensioná-la para a tela. Podemos fazer isso usando o redimensionamento de pontos da
imagem. Isso está na classe de
imagem PPI que redimensiona sua imagem para
o que você especificar. Então eu vou fazer
largura e altura. Na verdade, ele
ampliará sua imagem ou imagem obscura se usado para redimensionar
com qualquer resolução. Se sua imagem tiver uma
resolução diferente de um quadrado, talvez você possa
cortá-la ou talvez apenas redimensioná-la para um ponto com
a mesma resolução, mas até um ponto em que você possa ver a maioria da
imagem em sua tela. Então eu posso fazer qualquer
tamanho aqui, talvez eu queira fazer 200 por 400. Essa será uma forma
retangular e, na verdade,
vai realçar um pouco a
minha imagem. Mas eu só
queria te mostrar que você pode fazer o
tamanho que quiser. Vou ficar com largura, largura e altura. Agora que temos nossa imagem, podemos realmente
brincar com ela. Uma das minhas
formas favoritas de brincar com imagens é usar
a função de cópia. A função de cópia
basicamente pega uma imagem e copia
uma seção ou um retângulo da
imagem e cola em um lugar diferente ou
onde você deseja colá-la. O primeiro argumento que
ele usa é a imagem. Então, vou apenas dizer imagem. Vamos primeiro pegar uma seção
do ponto zero zero. Eu vou dizer a partir de 00. Então eu vou escolher
a largura e a altura. Imagine se eu estiver usando a função retângulo
dentro da função de cópia, a função retângulo
assume as posições x e y, que é a posição inicial, que é o
canto superior esquerdo do retângulo. E então ele tem uma
largura e uma altura. Eu vou fazer talvez
um 100 por 100. E então vamos
posicioná-lo em um lugar diferente. Eu vou escolher o
meio da tela. Então, digamos 200 por 200. E então eu vou
ter o mesmo tamanho. Eu não quero redimensioná-lo. Você pode redimensioná-lo. Talvez
você queira torná-lo maior, mas vou
mantê-lo do mesmo tamanho. Agora você pode ver que eu pego esse pedaço aqui
e coloco aqui. Agora está na
posição de 200 por 200, mas é retirado de uma
posição de 0 por 0 valores. Em vez de ter
um conjunto de valores, sempre
vou escolher um valor
aleatório. Para isso, será um valor aleatório de 0 à largura. Para isso, quero um
valor aleatório de 0 à altura. Em seguida, quero
posicioná-lo também em um valor aleatório de 0 à largura e um valor aleatório
de 0 à altura. Isso vai
sair da tela, então eu vou pressionar
Enter nesta função. Então, agora eu separei minha posição
inicial x e y, minha largura e altura, e então minha
posição final x e y e minha altura final. Você pode pressionar Command T ou controlar T no Windows para
corrigir o alinhamento. Isso vai
reclamar porque a função copy espera
parâmetros que sejam inteiros. E eu implementei carros alegóricos. Então, eu só posso expressar interesses. Então, agora estou convertendo todos esses valores flutuantes
em números inteiros. Agora vai funcionar. Então, se eu clicar em Play, veremos
quadrados aleatórios na tela. Então, é copiar de uma
posição aleatória e depois colá-lo em outra posição aleatória e picar a mesma coisa
repetidamente. E está tirando seus
recortes da imagem. Vou mudar o
design para ter dez por altura. Então, agora cada retângulo
vai realmente ser linhas muito finas. Isso me dará
um visual melhor. Mas em vez de
fazê-los passar de 00, de 0 para largura, quero
adicionar margem ao meu design. Vou criar um
número inteiro chamado margens. E vou dar 50 pixels porque quero que os
recortes
fiquem apenas no centro e
quero que
a borda tenha essa imagem estática
da imagem original. Para fazer
isso, preciso definir
a posição dos
retângulos que estou criando, não de 0, mas da margem. Então, se eu executar isso, quero que haja uma borda
no lado direito, no lado direito
e no lado esquerdo. Para obter uma borda
no lado esquerdo, obterei
um número aleatório, não de 0 a úmido, mas da margem,
que é de 50 pixels largura menos a
margem. Então, faremos isso. Se eu executar isso, você
pode ver que há 50 pixels aqui onde não há
linhas e há um pixel aqui onde não
há linhas. Agora, para que a altura funcione, não
vou fazer com que seja aleatória. Vou fazer o posicionamento
aleatório somente da direita para a esquerda, mas de cima para baixo. Eu vou empurrar isso
para baixo pela margem. Portanto, a posição y para a posição
Y inicial será margem. E então a posição
Y final também será margem. Agora temos uma borda na parte superior. Se eu executar isso agora, temos uma
borda muito clara na parte superior. Temos bordas claras no lado esquerdo
e no lado direito, mas não temos
uma na parte inferior. A razão para isso é
porque, na verdade, estamos considerando a altura como um todo. Precisamos subtrair as
margens da altura. Portanto, temos duas margens, o que significa que temos que subtrair a margem multiplicada por dois
porque temos duas. Eu vou fazer o mesmo com os dois. Agora, se eu executá-lo, você
pode ver que temos uma borda muito bonita
da imagem original. E isso lhe dá uma visão
muito melhor. Também o torna mais agradável
porque agora a altura está alta, movendo-se aleatoriamente, o
que significa que o blues vai ficar
no topo na maioria das vezes. A única razão pela qual
há um pouco de rosa é porque nem tudo é
azul, como o centro. E por causa disso também. Mas a maioria das
linhas é azul e
aqui embaixo vai ser
rosa e um rosa mais escuro. Portanto, existem vários
tons de rosa. Agora, a última coisa
que eu quero fazer
neste exemplo é verificar se a contagem de quadros é
maior que 120 ou qualquer número. Isso é exatamente o que eu achei melhor para o
meu design. Eu quero parar o ciclo. Você notará que o
loop realmente para. Ele parou depois de 120 quadros. Agora, se eu imprimir o FrameCount, você verá que
ele passará de um para 120 e depois parará. Porque o loop parou. Na verdade, fui para um
porque estamos verificando se é maior do que um vinte e um, vinte e
um é maior. E foi aí que o
loop realmente parou. Então, parou depois de 121 quadros. Então, essa também é uma boa
maneira de interromper seu design. Então, talvez você possa imprimi-lo
ou salvá-lo para uso posterior. Você também pode usar sementes
aleatórias com qualquer
número que desejar. Eu geralmente começo com 0. Então, toda vez que isso for executado, ele terá os
mesmos valores aleatórios. Então, vai ter
os mesmos resultados finais. No próximo exemplo, criaremos uma colagem
de várias imagens.
40. Imagem: exemplo 2: Neste exemplo,
crie uma colagem. Para uma colagem, precisamos várias imagens dentro
da nossa pasta de dados. E eu criei,
salvei esse arquivo, o arquivo de esboço e
criei uma pasta de dados. E dentro dela, eu tenho
todas essas formas. Assim, você pode ter
qualquer forma aleatória. Eu
também criei um hexágono, um octógono , algumas flores
e alguns triângulos. Então isso é muito importante. Vou criar um link para essa
pasta na seção do projeto. Mas se você quiser
criar suas próprias formas, certifique-se de criá-las em
PNG e que elas tenham um fundo
transparente. Se você quiser o plano de fundo, fique à vontade para usar JPEG ou PNG com fundo branco. E então você tem que
nomeá-los com números. Para o primeiro,
adicionei a palavra-chave azul, apenas para indicar que
é uma cor azul. E então eu comecei a contar. Então, para este é 0102, some 06, na verdade até 09. Eu incluí essas
turquesas no azul. E então o mesmo para verde, mesmo para laranja
e rosa e vermelho. Todos eles têm nove imagens. Todos eles precisam ter uma numeração
consistente neste
exemplo porque vamos usar um loop for
que conta de 0 a nove, na verdade de um a nove. Então, quando você tiver
sua pasta pronta, vamos ver o exemplo. Para isso, a primeira
coisa que
precisamos são as palavras-chave
em seus arquivos. Então, para mim, é azul, verde, laranja, vermelho e rosa. Vou criar os nomes
das imagens. E eu vou colocá-los
dentro de uma matriz de cadeias de caracteres. E eu vou
chamá-los apenas de nomes de imagens. Vou colocá-los aqui
diretamente dentro da matriz, porque eu só tenho
cinco palavras-chave. Não há necessidade
de inicializá-lo e gerar usando um for-loop. E agora vou inicializar
a contagem das imagens. Para isso, vou
precisar de um número inteiro e vou
chamá-lo de contagem de imagens. E vou colocar nove porque
tenho nove emissores. E já que vamos
carregar uma matriz de imagens e depois
posicioná-las na tela. Vou criar uma
classe porque será muito mais fácil
para nós navegarmos nela. E vou
chamá-la de imagem grande. E dentro daqui, vou precisar de um nome de arquivo. Então, sempre que eu carregar uma imagem, vou precisar dessa entrada. Então eu vou colocar isso aqui. Nome do arquivo de string. Então, é claro, vou
precisar da imagem PPI porque estou carregando a
imagem com esse nome de arquivo. Então eu vou precisar de uma posição x e y e uma
largura e altura. Às vezes eu gosto de adicionar essas, a posição e o tamanho das formas ou imagens
aqui como variáveis. E então, se eu não
precisar delas ou se eu descobrir que não
preciso dessas variáveis, eu vou
mudá-las então. Porque é muito mais
fácil começar com variáveis,
caso você mude
coisas em vários lugares. E então, se você descobrir que
o está usando apenas uma vez, basta remover
a variável. Essa é outra forma ou outra abordagem para
criar variáveis. Então eu vou
criar o construtor. Em seguida, vou chamar o parâmetro string
underscore file name. Só para
nós, é mais fácil sabermos que ela será
associada a essa string aqui. E aqui, é claro, vou escrever que o nome do arquivo
será igual ao que for
inserido nessa classe. Em seguida, minha imagem,
vou carregar a imagem. Vou usar o nome do arquivo. Então, o nome do arquivo não
terá PNG ou JPEG. Você pode fazer com que o usuário insira
o arquivo com a extensão. Mas, por enquanto, como sei que
todas as minhas imagens são PNG, vou
ficar com o PNG, especialmente se você quiser que
seu programa tenha apenas PNG com
fundo transparente para funcionar, então é melhor
que você inicialize a extensão e peça
ao usuário que insira o nome da imagem. Vou dar a ele
uma largura e uma altura. Eu vou fazer 120 por 120 só
porque eu testei antes. E eu sei
que 120 vai funcionar. Então, para x ou para a posição, vou dar a ele um valor
aleatório de 0 a um. Em seguida, para y de 0 até a altura. E depois disso, eu
redimensiono as imagens porque minhas
imagens estão um pouco. Como eu não quero
nenhuma pixelização, embora minha tela
seja de 400 por 400,
eu sempre crio como se eu
fosse criar uma tela
maior,
caso um dia eu
queira voltar a e talvez salve algumas
das imagens. Vou
redimensioná-lo para 120 por 120. Eu sei que isso parece não necessário aqui porque só o
estamos usando uma vez. Então, por que usar 120 por 120? Em seguida, redimensioná-lo aqui
pelas variáveis quando eu posso simplesmente redimensionar em
um, vinte, um vinte. Mas eu vou fazer
algo mais tarde. Você verá que agora
vou carregar todas
as imagens usando essa classe. Vou criar uma matriz
dessa classe chamada imagens. Em seguida, vou
inicializar a matriz primeiro. Imagem de colagem de Neil. O comprimento da matriz de
imagens de colagem será o nome da imagem
multiplicado pela
contagem de imagens porque temos nove imagens de cada um
desses nomes de imagem
multiplicados pela contagem de imagens. E agora vamos
acomodar toda
a lista de imagens. Em seguida, vou criar as instâncias da matriz de imagens de
colagem, então somente o for-loop. E vai se expandir
até os nomes das imagens, comprimento dos
pontos e
incrementos em um. Essa matriz vai
iterar cinco vezes porque estamos apenas
expandindo-a para o comprimento do ponto do
nome da imagem. Então, aqui dentro
das imagens de colagem, apenas as
cinco primeiras terão valores. Preciso aninhar outro loop que vai iterar nove vezes com base na contagem de imagens para cada um dos nomes
dentro dessa matriz, vou repetir nove vezes para obter os nomes
para as imagens corretamente. Então, agora meu segundo
loop
vai analisar a contagem de imagens. Agora temos o tamanho
da imagem da colagem. No entanto, eu não posso simplesmente fazer imagens de vez em quando
e depois ir eu, porque eu só
vou de 0 para quatro. Mas essa matriz de imagens
é muito maior. Na verdade, é cinco
multiplicado por nove. Então eu preciso fazer o índice
aqui usando I e j. É aí
que entra a IA. E então vamos
multiplicá-lo pela contagem de imagens. Agora, antes de fazer qualquer coisa, quero imprimir os valores aqui no console para que você
possa ver o que eu multipliquei por condados de imagens durante o primeiro
, saindo de 0. Então, 0 multiplicado por nove, que é a
contagem de imagens, será 0. E então, para o segundo
, será um
multiplicado por nove, o que nos dará nove. E então nove multiplicado por dois porque eu
vou ser dois. E o mesmo
vale para todos eles. E então o
último será quatro multiplicado por nove, o que nos dará 36. Portanto, isso não está nos dando de 0 até o último valor
que precisamos. Nove multiplicado por cinco é 45. Precisaremos que isso suba até 45. O que você notará
aqui é que isso vai de 0 e
depois pula para nove. Mas onde está meu 128128 está basicamente os primeiros nove,
que é onde está o azul. Então, eu só estou recebendo o primeiro para azul e
depois estou obtendo o nono índice dentro
da minha imagem de colagem, e esse é o verde, esse é o início do verde. E então 18 será
o começo da laranja. Mas preciso adicionar nove
imagens de cada uma delas. É aí que entra J. Eu vou adicionar j a isso. Porque para as primeiras
nove posições, onde é 0 aqui, vamos adicionar j a ela. Então o primeiro
vai ser 0, o segundo
vai ser um, o terceiro vai
ser dois, e assim por diante. Então, aqui,
quando tivermos nove anos , quando isso vai ser um, todos esses serão
nove. E então, quando adicionarmos j a ele, eles serão em vez de apenas 99101112
porque nove mais 0, que é a primeira
iteração do j, será
nove e depois nove mais um é vai ser dez. Então, vamos
ter toda a matriz. Então, vamos realmente imprimir
isso e ver o que acontece. Temos toda a nossa matriz. Então, temos de 0
até sexta-feira cinco, ou na verdade 44 porque
estamos indo de 0, mas temos 45 posições, que cobrirão
nossa matriz de imagens de colagem. Vou remover isso
e é incomum esse j
ativo aqui. É um
pouco complicado começar a fazer isso. Mas depois de entender
o conceito e
examiná-lo usando a linha de impressão e vendo como as coisas
estão realmente funcionando, você pode até mesmo substituir i por j e ver o que funciona
e o que não funciona. Acho que
cometer erros ajuda você
a entender melhor o que está
acontecendo. Para mim. Eu gosto não apenas de
seguir tutoriais, mas na verdade gosto de
cometer erros e tentar coisas
diferentes,
mesmo que eles me digam que isso não vai produzir
o resultado certo, eu só quero ver o que
acontece se der errado. Então eu entendo o que está
acontecendo quando dá certo. Agora temos os valores da
nossa matriz de imagens aqui. E eu vou dar valores a isso. Agora podemos criar as instâncias da classe de imagem de colagem. Vou dizer apenas uma imagem nova
e depois colada. É por isso que eu criei
esse parâmetro aqui, porque eu quero gerar nomes de arquivos
dentro do loop for. E se eu tivesse que fazer tudo
isso dentro do meu loop
for, seria muito longo. Portanto, é muito mais fácil
criar uma classe aqui. Sabemos que os nomes de cada imagem começam
com os nomes das imagens. Então, vou começar
com nomes de imagens. E eles vão ter IA porque
a IA usa o comprimento do ponto nos nomes das
imagens, então eu vou adicionar a
essa string sublinhado 0
porque eu sei que meus arquivos têm o nome da imagem e
, em seguida, um sublinhado 0 e, em seguida, a iteração ou o
número da contagem de imagens. E então eu vou
concatenar outro valor para a string. E vai ser j mais um. Eu tenho j mais um entre
parênteses porque quero que isso seja muito mais forte e
quero que aconteça primeiro. Se eu remover
isso, isso concatenará j e adicionará
um a ele. Só para ver isso
melhor, vamos imprimi-lo. Vou comentar isso, para que nada aconteça.
Se eu imprimir isso. Você verá que
teremos azul e depois 001 porque j é
0, será um. Então, o próximo
será 0 e depois 11. Então, ele olha para
este como se fosse uma concatenação para a
string e não está olhando para ele como se o
estivéssemos adicionando a j. Mas eu quero adicioná-lo
a j porque j começa com 0 e eu
quero começar com um. Então, vou adicionar parênteses para tornar esse cálculo
mais forte do que o resto. Então isso vai acontecer
primeiro e depois
eu vou fazer esse número
para a string. Agora, se você olhar para isso, temos os números certos. Agora, para azul, é sublinhado 0. Este é um sublinhado 0. E então esse é o único. Então, agora funciona. Vou adicionar os
parênteses aqui. E todas as minhas imagens estão
na verdade dentro da minha matriz. Se eu quiser verificar, posso imprimir a matriz. Você pode ver que agora
temos muitas classes
ou instâncias
diferentes da classes
ou instâncias
diferentes da classe dentro da
minha matriz de imagens. Você não vai
ver o que está dentro
dele , a menos que entre nisso. Então, se você quiser entrar nisso, você terá que
imprimi-lo dentro do loop. Então, podemos usar esse índice. Porque essas variáveis são locais
apenas para os for-loops. Em seguida, vou
imprimir os nomes dos arquivos. Eu posso ver que todos os nomes dos arquivos são realmente adicionados
dentro da matriz. Em seguida, vamos
realmente desenhar as
imagens na tela. Como esse
será um design estático, vou fazer
um loop aqui. Sinta-se à vontade para fazer dele
um design animado. Mas, a partir do meu design,
vou torná-lo estático. Ok, agora para posicionar
as imagens que estão armazenadas na matriz de imagens, também
vou criar
outro loop for, mas desta vez o for-loop
está na verdade indo de 0 para o comprimento desse
brilho matriz de instâncias de imagem. E para realmente mostrar a
imagem ou as imagens, eu vou fazer a imagem. E então, dentro dela, vou usar a
matriz de imagens e o valor do índice. E como isso
só vai me dar as instâncias dessa aula, eu vou ter que realmente
entrar aqui e obter a imagem. Então, isso vai me dar
uma instância da classe, e eu vou precisar
da imagem da propriedade para realmente ver
a imagem que está carregada
dentro dessa classe. Vamos começar
posicionando-o no centro. Só para ver se está funcionando. Agora eu tenho todas as minhas imagens, mas elas não estão realmente
no centro porque as imagens são desenhadas no
canto superior esquerdo como retângulos. Podemos mudar isso
usando o Modo de Imagem. Eu vou fazer com que seja o centro. Agora, na verdade, está
desenhando do centro. Isso é ótimo. Agora, em vez de desenhar
todas as imagens umas
sobre
as outras no centro da tela, vou usar os posicionamentos x e
y aqui. Então, eu tenho uma largura
e uma altura aleatórias. Podemos fazer isso
examinando cada uma das instâncias. Então, indo para x. Então, se
eu fizer isso, eu posso ver que teremos posicionamento X
aleatório ou porque não
alteramos
a posição y, ela ainda está no centro
da tela no eixo y. Agora, para mudar isso, vou criar uma variável
chamada posição. Por quê? Porque isso vai ficar
um pouco longo e não
faz sentido
colocá-lo aqui e não será mais legível. Então, agora eu preciso de linhas ou cinco
linhas para cada uma das cores. Agora, crie uma linha para cada um
dos nomes das imagens ou o
PTH das cores. Vou ter que dividir a
altura pelos nomes das imagens. Então, agora eu vou ter cinco
fileiras de igual altura, mas agora elas estão todas
no mesmo lugar. Então, vou precisar
multiplicá-lo a olho nu. Mas agora isso não vai
funcionar novamente porque temos diferentes comprimentos de matriz. O que fizemos aqui foi mudar
a forma como escrevemos o índice para que as imagens realmente funcionem com o comprimento
dessas duas matrizes. Mas agora temos o oposto. Temos imagens desse tamanho. Então agora temos 45 aqui. Então,
vai de 0 a 45, o que significa colocar cada uma
dessas imagens em uma linha diferente. Então, somente esse número
caberá aqui. Em vez disso, vou dividir a altura por
imagens desse tamanho. Agora temos todas
as imagens e
ainda temos o azul na parte superior, depois o verde
aqui, e depois o laranja, vermelho e o rosa, que estão
nesta ordem aqui. Se você quiser alterar o pedido, você pode alterá-lo aqui. E observe que o primeiro
sempre estará na parte inferior. Então, talvez você possa alterá-los. Você pode classificar sua matriz usando qualquer uma das funções de
classificação
ou criar
sua própria classificação, ou criar
sua própria classificação onde você
pode simplesmente misturar tudo para ter uma cor
diferente em cima de uma cor diferente. Agora, na minha imagem original, eu tinha um
fundo preto, que fará com que as cores se
destaquem um pouco mais. Agora, em vez de
dividir pela altura, vou
dividi-la pela altura menos a altura das imagens, só para evitar esses
recortes por aqui. Agora, se eu executar isso,
posso ver que
na verdade está subtraindo
a altura
da altura real e depois dividindo pelo comprimento dos pontos das imagens
e criando as linhas. Agora eu preciso adicionar
metade disso para que eu possa empurrar tudo isso para a posição da minha
esposa nas imagens. E se eu executar isso
agora, não temos nenhum recorte na
parte superior ou inferior. E eu posso fazer a mesma
coisa com o x. Então eu vou
criar a posição x em vez de
colocá-la toda aqui. E aqui eu vou chamar
a posição x. E, adicionando a ela imagens,
eu ponto dividido por dois, ou
seja, metade da largura
das imagens. E agora eles não estão
recortados aqui, mas estão recortados
aqui porque,
na verdade, estamos obtendo um
valor aleatório de 0 à largura. E eu preciso obter um valor aleatório de 0 a menos a largura. E é por isso que estou realmente
usando variáveis
aqui , porque eu sabia
que precisaria disso aqui. Também podemos fazer a mesma
coisa com a altura obtendo um valor aleatório. Mas como não estamos realmente
usando o y aqui, apenas usando a exposição. Não podemos realmente fazer isso aqui, a menos que estejamos usando o posicionamento
aleatório. Então, eu estou fazendo isso
aqui em vez disso. Agora temos
todos eles no centro. Não há recortes. Você pode executar isso
uma e outra vez. E você verá
diferentes variações e poderá adicionar sementes
aleatórias aqui para obter os mesmos
resultados repetidamente. Se eu apenas executar
isso, deve ser o
mesmo todas as vezes. Você precisa colocar a
semente aleatória antes da aleatoriedade. Mas como a aleatoriedade está realmente dentro dessa classe, você pode colocar uma
semente aleatória aqui ou simplesmente colocá-la antes de criar
as instâncias da classe. Se você colocar aqui
, não vai funcionar. Isso criará
a aleatoriedade e depois
dirá a semente aleatória. Portanto, seu computador só
examinará seus códigos em ordem
cronológica. Então, vai da
linha um aqui embaixo. A menos que haja uma função
, ela vai
para a função e chama tudo lá dentro. E então ele voltará
para tudo abaixo dessa
chamada da função. Isso é tudo o que precisamos
saber sobre colisores ou carregamento de várias imagens
em nossa tela. Em seguida, falaremos sobre um tópico diferente,
que é a topografia.
41. : Estamos quase terminando. Os exemplos foram na seção final do básico do design. E para esta seção dos exemplos, vamos falar sobre tipografia ou tipografia especificamente em processo. Aprendemos como Teoh criar formas em uma seção anterior usando a classe de forma P, e aprendemos como carregar imagens na imagem da seção do básico de design Exemplo. Vamos combinar estes dois com o tipo para criar algo assim. Não, isto é um programa de digitação. Então, o que você está vendo agora neste design é realmente letras transformadas em formas que eu importei usando SP. Nossa, você não faz isso, vamos começar com uma cadeia de alfabetos que vamos dividir em caracteres que podemos usar com o teclado para inserir esses desenhos. Além disso, salvei esse arquivo de esboço porque preciso de um arquivo de dados para colocar meus arquivos SCG. E então eu tenho minha pasta de dados aqui dentro da minha pasta de esboços. E então se eu clicar nele, você verá que eu tenho todos os meus arquivos SPG de A a Z. Você também pode adicionar espaços, vírgulas e pontos pássaro para este exemplo simples. Eu só fiz de um a Z e eu estou indo toe ligado a este selvagem também e a
seção do projeto abaixo. Além disso, quando você está nomeando seu finalmente tem que ser consistente com você ou usar todas as letras minúsculas ou todas as letras maiúsculas,
e, em seguida, ele criou uma forma diferente para cada letra com base na forma da letra si. Mas você pode criar qualquer forma que você quiser. Talvez você queira criar um monte de flores ou um monte de retângulos com cores diferentes . Então você quer talvez substituir a letra por cores em vez de shakes. Mas eu vou para dio-formas e, em seguida, para cor, eu vou usar uma paleta de cores. Ok, eu vou começar com uma string do outro um pouco, e eu vou carregar uma forma para cada um do alfabeto. Então eu vou criar matriz de forma P. Vou chamar-lhe viagens. Dentro disso, vou inicializar a matriz, e eu vou dar-lhe um comprimento da string alfabeto usando o método length e a
razão pela qual eu estou usando o comprimento e não dizendo 28 em vez disso, porque às vezes talvez você queira adicionar Coghlan Você quer anúncios, vírgulas e pontos e todos esses outros personagens, e é muito mais fácil se você apenas dizer alfabeto tratado Link. Então, o que quer que você adicione aqui, é muito mais fácil calcular o comprimento, então assumir ou contar sempre. Por enquanto, não
vou criar uma paleta de cores. Farei isso em preto e branco até que funcione. E então faremos uma paleta de cores. E isso geralmente é o que eu faço quando eu faço meus projetos. Ok, agora eu posso usar o comprimento do alfabeto aqui dentro do meu loop que eu vou criar onde eu vou colocar todas as formas na forma P, certo? Mas em vez disso eu vou apenas criar uma constante, porque se eu tiver outros caracteres além do alfabeto, ele vai ser um array diferente para aqueles para carregá-los. Nós vamos fazer em alfabeto e para Constant, geralmente usar tampas antigas. E é 26. Eu acho que eu disse 28 antes, mas isso é Ah, o alfabeto árabe. Me confunde às vezes. Então sim, é 26 então eu vou fazer quatro inteiros I igual a zero e então eu vou ser menor que o alfabeto ling. Ok, e dentro daqui, nós vamos colocar as formas em forma de raça. Então vai ser formas I e, em seguida, estamos usando forma de carga desta vez porque não estamos criando uma forma antes de usarmos criar forma. E então começamos a forma e terminamos tropeçando no meio. Usamos a facilidade Vergis, mas para este exemplo, só
vamos carregar formas que já criamos antes. E eu criei todas as minhas DST são um ilustrador, mas você pode fazê-lo online ou em qualquer outro software. Certo, agora vou carregar a forma, usando os nomes dos arquivos. Agora meus arquivos são nomeados como ponto sgb não SPD e assim por diante. Então eu preciso de cada caractere nesta string para obter cada caractere. Há uma função chamada char at ou carro em para strings, e leva cada caractere usando um índice. Então, para
isso, é exatamente como um aumento para o 1º 1 Está no Índice zero para o 2º 1 é um, e então até o comprimento menos um. Então isso vai ser 25. Então, se eu fizer? Ele vai me dar o personagem naquele momento. E então eu vou para o Capitão 8 a extensão, que é dot svg. Agora, este é o meu nome final. Vai ser cada personagem neste trem e depois ponto SPD. Ele sabe que eles estão carregados? Estou indo, Teoh os colocou aleatoriamente. Médico. Então eu vou usar a forma como usamos antes quando criamos nossa forma personalizada e então eu vou ter que criar uma matriz novamente. Nós estivemos aqui. Eu vou fazer formas I em uma posição aleatória para que você possa vê-los todos do PS para ele confere aqui a altura para o porquê? E se eu comandar isto, vamos ver todos eles por todo o lado. Agora são extremamente grandes. Se eu mudar o Phil 20, mas com um valor Alfa, nada vai funcionar. A razão para isso é porque não desativamos o SPG ou os estilos de formas. Depois de carregar as formas, basta
usar, não desativar estilos, que é uma função com a classe em forma de ervilha. Não, ele vai aplicar os estilos a ele. Então teremos um derrame se eu remover este derrame. Também temos um problema diferente. Que é o tamanho de todo o nosso SVG Zahra. Enorme. Você pode alterar o tamanho dentro de sua função de forma adicionando dois parâmetros a este ou dois ou mais argumentos que vai ser a largura e altura vão fazer 100 por 100 . Não, eu posso ver que há muitas formas pequenas e podemos ver melhor se eu abrandar. Então eu vou diminuir a velocidade para três quadros por segundo e eu posso ver as formas. E se eu realmente aumentar ou remover a transparência, podemos ver as formas agora finalmente funcionando. OK, mas o que precisamos não é apenas desenhá-los na tela. Cada quadro que eu preciso para criar uma máquina de escrever para fazer suas naves aparecerem. À medida que você digita as letras no teclado. Vou usar a função de chave liberada agora dentro da função de chave liberada. Se eu imprimir a palavra-chave, veremos que toda vez que eu digitar você realmente vê as letras que eu digito no conselho aqui. Vou usar esta palavra-chave para pegar as formas da matriz de forma P, usando o caractere associado com a tecla clicada. Não, se eu desenhar as formas aqui e vou colocá-las no centro por enquanto, vou redimensioná-las porque são enormes. Isso não vai entrar dentro de um loop for. O olho vai ser criado como uma variável onde a posição vai ser o índice
da tecla dentro dessa chave matriz sendo a tecla pressionada ou liberada no teclado. Para obter isso, há outra função em strings chamada index of. Então, se eu fizer o alfabeto e então eu obter o índice fora do personagem
que está sendo clicado, que é a chave, ele vai me dar a posição dele aqui, que eu também posso usar aqui. Desde que nós empurramos ou carregamos as formas dentro deste array com base nas mesmas posições desta string ou desses caracteres
nesta string, isso é a mesma coisa, então ele realmente vai procurar a chave nessa string, a string do alfabeto, e se ele encontrá-lo, ele retornará o índice ou sua posição para você, e então você pode usar essa posição para pegar o mesmo caractere da mesma forma da matriz
Shapes na mesma posição. Know index Off vai retornar negativo se ele não encontrar nenhuma das chaves. Então, se eu pressionei o espaço, por exemplo, ele vai retornar um negativo, e então ele vai procurar por ele aqui e ele não vai encontrá-lo, então isso não vai funcionar. Então tem que ser uma das casas um pouco aqui que você clica no teclado. Agora, se eu clicar no teclado, você verá as formas funcionando. Mas agora as formas não estão no centro, porque novamente são desenhadas a partir do canto superior esquerdo. Se eu usar forma militar para e colocar em um centro, e agora eu clicar no teclado vai estar no set, e eu tenho que ter certeza de que se isso retorna negativo que isso não funciona, porque então ele vai dizer que esse índice é não disponível na matriz e ele vai lançar um erro. Então, se eu realmente agora clicar no espaço, ele vai dizer índice de matriz fora da exceção vinculada porque não há negativo o que Então eu tenho que garantir que se o índice da chave realmente não é igual a um negativo, então faça isso, porque se for igual a um negativo, então não encontrou a indústria chave. Ele pode facilmente fazer isso usando um if condicional, usando índice de chave não é igual a negativo, e eu posso fazer tudo isso. E se você tivesse o comando T ou T controlado no Windows, então você pode corrigir o recuo. Agora. Se eu clicar na barra de espaço porque não existe e os alfabetos bebem, então nada vai acontecer. Nenhum erro será lançado. Mas se eu clicar nas outras letras que não são desenhadas para ver isso realmente mudando, vamos adicionar a paleta de cores. Então eu já tenho uma paleta de cores que eu sou jovem para copiar e colar no meu arquivo. Sinta-se livre para escolher as mesmas cores ou escolher a sua própria. Agora, em vez de usar o euro Phils cada aqui, eu vou removê-lo. Eu não vou deixar nenhum derrame, e aqui, dentro do meu condicional, vou adicionar um preenchido da matriz de cores. Como você pode ver aqui, há Ah, matriz de
cores que eu chamei chama ele tem cinco cores, e eu quero usar uma cor aleatória, então eu realmente não me importo com a coloração. Só me importo com as formas associadas às chaves. A fim de obter um índice aleatório dentro dos meus colchetes, eu vou usar a função aleatória dentro da função aleatória. Vou usar o comprimento da matriz como meu máximo. No caso de eu querer adicionar cores mais tarde, e agora ele vai reclamar porque uma matriz ou posições na casa da matriz para ser inteiros. Então eu vou lançar isso em um intruso, então isso vai convertê-lo e vai funcionar. Agora. Se eu clicar em jogar e digitar, vamos obter cores aleatórias para que você possa ver isso. Muito bem, estamos a ter formas diferentes com base no momento em que estou a escrever. É hora de consertar a posição dessas viagens porque colocá-las em cima das outras
não vai funcionar. É hora de criar um machado na posição de vida, e aqui eu vou colocar X e por que vai ser um valor aleatório de zero a altura, Mas eu estou realmente indo para dio de zero a altura menos 100 que é o tamanho ou o alturas de cada forma. E eu vou remover a carga de forma por enquanto porque eu queria desenhar a partir do
canto superior esquerdo . Se você quiser desenhá-lo do centro, sinta-se livre para fazer isso. Mas então você vai ter que consertar o posicionamento para não tirar as formas do topo e deixar amarrado. Porque quando você está desenhando do centro, você vai ter que acomodar para aquela seção em cima e esquerda apertada. Mas é muito mais fácil se você simplesmente remover isso e deixá-lo desenhar do canto superior esquerdo, que
significa que eu estou sempre sabendo que minha forma é segura do lado superior e do
lado esquerdo . Mas então eu tenho dedo do pé só trabalhar no lado direito no lado inferior. Então desta forma eu sei que se eu fizer de zero a altura menos o 100 Eu sei que mesmo as formas que vão estar na parte inferior da tela eles não vão ser cortados
porque eu sei que eu removi ou subtraí 100 que é o tamanho altura destas formas a partir da altura da tela, o que
significa que estou seguro o tempo todo. Agora, se eu correr, este X estará a zero cada vez. Mas então eles vão ter altura aleatória e você pode ver que eles estão sempre na borda do lado inferior e no lado superior também. Se eu remover isso, se você quiser testar, ele pode removê-lo e você pode ver que eles estão cortados aqui. Vou devolvê-lo para 100 negativos ou altura menos 100. E agora estamos seguros. Eu sei. Vamos trabalhar no X para que ele desenhe daqui ou do lado esquerdo da tela para o lado
direito da tela. Agora, para fazer isso, eu preciso compensar por 100 cada vez. Então eu vou criar outra variável chamada offsets, e eu vou adicioná-lo à exposição. E então eu tenho que dar um valor a ele. Então, se eu disser ah 100 aqui e eu rodar isso, você verá que você vai ter apenas um deslocamento cada vez que você digitar, porque este é um valor estático. Mas se eu começar inicialmente com zero. E toda vez que a forma desenha, eu quero aumentar o deslocamento. Então o oficial vai aumentar em, digamos 50 por agora e ver o que acontece. Podemos ver que funciona. Não, é uma posição aleatória que altura, e então é compensado por 50 cada vez. E se eu mudar o valor de deslocamento e USC, é muito maior. Então, 50 anos, bom tamanho, a razão pela qual eu estou usando 15 em vez de
100 porque ah, 100 está englobando as margens do lado direito e esquerdo das minhas DST. Então, se você olhar para os arquivos aqui, você vai ver que há margem aqui, e eu criei emergente de 25 25 pixels. Então, há 50 pixels, então a imagem real é 50 pixels branco. Então, se eu quiser compensar, vou compensar por 50 para conseguir que as formas grudem umas nas outras. Mas se estou compensando por 100 do que estou mantendo as margens, então vai parecer que há muito espaço entre eles. Se você quiser adicionar ing atual aos seus navios como se estivesse trabalhando com o tipo, então com certeza . Use os 100. Isso é com você. Agora, remova esta parte do tambor desta margem no lado esquerdo. Para o primeiro 1 eu vou começar X em menos 25. Mas em vez de fazê-lo dentro da chave liberada para evitar redefinir cada vez para menos 25 eu vou configurá-lo aqui. Então, os atos vão ser menos 25. A razão por que está aqui? Porque eu quero ter uma altura aleatória toda vez que as chaves são coletadas ou liberadas. Mas eu não quero isso. O Teoh. O que? Eu não quero que o X seja redefinido para menos 25 cada vez que as chaves forem liberadas. Agora ele funciona melhor agora você pode ver que não há margem no lado esquerdo para o 1º 1 e todos depois são apenas 50 pixels deslocados para a direita. Agora, quando eu queria redefinir cada vez que eu tinha que clicar no botão play novamente e, em seguida, pará-lo e jogado novamente juntos y tela um de reset em vez. Usando um backspace. Posso facilmente fazer isso fazendo outra coisa. Se agora, se isso for igual a um negativo, então ele não existe no alfabeto, o que significa que é uma letra diferente que significa backspace, um botão de retorno,
um botão de barra de espaço. Então eu vou Teoh, ver se a chave é um backspace. Quando não é nenhum dos personagens,
há, há, ah valor constante chamado backspace nativo para processamento. Há também no enter que vamos usar para obter uma nova linha em vez de apenas obter um valor aleatório cada vez. Então, se a chave é backspace, então eu quero redefinir. Se eu quiser redefinir, significa que eu quero que X volte para aqui,
ou seja, menos 25. Então eu vou fazer X igual a menos 25. E então eu também quero que o deslocamento seja de volta a zero, porque se não compensarmos zero se for agora 100. Quando eu decidi, Teoh redefine e então eu comecei a escrever novamente. Vai começar a partir de 100 pixels e não de zero agora. Se eu rodar isso e começar a digitar, se eu apertar backspace, ele vai voltar desde o início. Mas não está removendo o fundo, então eu também tenho que redefinir o fundo para Branco porque este é o fundo inicial, não Se eu começar a escrever e então eu bater backspace, você vai ver que é uma ficha limpa e se eu escrever tudo de novo, ele vai começar a partir de X menos 25. Agora vamos ver o que acontece se eu não redefinir os offsets vai ser executado isso então isso funciona . E agora, se eu digitar agora, este é 250 então deslocamento é 250. E se eu bater no backspace, o 1º 1 vai ser aqui porque Offset foi 250 e depois aumentado em 50. Então agora é 300 então vai ser um 300. Só recuei 25 por causa do Ex ter menos 25. Então eu preciso redefinir o deslocamento para zero todas as vezes. Ok, nós fazemos isso, e se eu acertar, Backspace está voltando desde o início, então está funcionando perfeitamente agora. Eu gosto disso. Por que tem valores aleatórios? Mas não quero que seja toda vez que escrevo para obter valor aleatório. Eu só queria obter um valor aleatório se eu entrar, ou se ele sair deste grande, então eu vou verificar se a chave é igual a enter e só então eu vou obter um valor aleatório para a altura. Então eu vou conseguir uma nova linha. Qualquer um quando você está mentindo para estar em qualquer posição. Eu realmente não me importo que ele esteja em uma determinada posição, então eu vou apenas mantê-lo aleatoriamente. Mas desta vez só vai ter uma nova linha quando eu apertar Enter. Não, se eu clicar nisso e eu começar a digitar e então eu tive enter, ele vai ter uma nova linha. Mas há outro problema. S não vai voltar para menos 25 o deslocamento não vai voltar para zero. Então eu tenho que repetir isso de novo. Agora, se eu executar isso e, em seguida, apertar Enter agora nós temos um problema diferente desta vez. Se eu voltar para o espaço, vamos ficar na mesma linha em que estávamos antes de entrarmos no espaço. Então, eu vou dar o pé. Também coloque o posicionamento y aqui e vamos organizar isso para ter X antes por que apenas para que
possamos lê-lo melhor? E se eu rodar isso agora e eu começar a digitar e eu tinha enter cada vez que eu tinha enter, eu recebo uma nova linha e então se eu apertar backspace em, eu começo a digitar. Vai começar desde o início, então tudo é reiniciado. Está tudo bem agora. Isso não é ideal para repetir o mesmo código, mas aprendemos algo que podemos usar para evitar redundância. E isso são funções. Então, tudo cria uma função de reset. E aqui eu vou pegar o código de repetição pego em RV colado aqui e, em vez disso , eu vou apenas usar a função, chamar ou estar aqui e aqui. Não, se eu executar,
tudo funciona da mesma forma. Eu tinha raiva vai fazer e você linha, mas se bater no backspace, ele vai para uma posição diferente. A última coisa que precisamos para Dio é evitar sair da largura da tela. Agora, se eu continuar, digitando vai digitar e eu ainda estava digitando, mas não vemos mais porque eu não adicionei um limite para a largura da tela. Poderíamos fazer isso facilmente usando isso. Nós sentamos função novamente dentro do diferente de condicional dentro aqui,
então, como eu estou digitando, vai dizer se X mais offset é maior do que a largura, então por favor redefinir e ir para um novo vinho. Então está checando se a exposição está saindo da tela. Um canto esquerdo de cada forma é maior do que a inteligência. Então precisamos reiniciá-lo para aqui. Agora estamos rodando pela última vez, e agora se eu sair da tela é realmente criar uma nova linha. Eu não estou indo. Digite qualquer coisa, mas ainda vai para qualquer um. E se eu quiser ir para quando você fila antes de terminar a primeira linha, então eu posso fazer isso comigo. Apenas reinicialize. Ainda posso ir a um leão novo antes de atingir a largura. Mas então, se eu quiser ir para o oeste, vai criar um número aleatório de sua vida para mim. Aprender este exemplo. Nós seremos capazes de importar S P. G para seus arquivos, não necessariamente usá-lo com uma máquina de escrever como a que eu criei, Você pode apenas usar SPG es como formas aleatórias para colocar em sua tela. Esta é outra maneira de personalizar suas formas sem criar formas personalizadas dentro do
processamento,
usando a facilidade Burgess para processamento, que agora você possa criar suas formas como um vetor arquivado e convertido em SVG e importante em vez de desenhar cegamente formas que você não sabe o resultado, a menos que você execute o programa uma e outra vez no próximo exemplo da seção de tipos que vamos olhar
para o carregamento, tributado a partir de um arquivo.
42. : para um exemplo final na seção básica de design, vamos falar sobre o carregamento de texto de um arquivo. Então e se você tem arquivos de textos que você pode ser exportado de suas mensagens ou de seus e-mails ou qualquer coisa assim, e você quer fazer alguma análise com ele? Então eu vou mostrar a vocês como carregar texto de um arquivo para que você possa usá-lo no processamento. Agora eu já criei um produto antes onde eu tinha que carregar letras no meu projeto para criar um design com formas, beber as letras em formas e criar alguma arte do álbum com pagar em grande. Para isso, eu vou importar letras de uma música que tem sido preso no alto desde que eu comecei a
assistir a extraordinária playlist de Zoey. Vai usar isso e criar texto embaralhado em uma tela? Não. Para carregar texto de um arquivo, vamos ter que usar strings de carga assim como usamos load, shape e load image. Nós também vamos usar strings cargas para baixo texto do arquivo de texto. Então eu vou criar uma string chamada Texto, e em que eu vou carregar os fluxos do meu arquivo de texto louco. Mas se você pode ver por aqui, ele diz tipo incompatibilidade porque cadeias de carga realmente carrega em matriz de pontos fortes porque cada linha dentro desse arquivo vai ser uma string ou um elemento dentro de uma matriz de força. Então eu vou apenas fazer uma série de cordas. E agora, se eu príncipe texto, veremos o conteúdo do arquivo. Só estou para comparar. Eu tenho a minha pasta ou estar aqui e dentro do meu arquivo de dados novamente, eu tenho minha capa de arquivo de texto louco separar cada linha como um único objeto dentro da string, e se eu realmente imprimir apenas é a sua posição, eu vou obter a primeira linha. Então diz: “ Lembro-me de quando e por aqui é que me lembro de quando. Então agora sabemos que cada linha é realmente seu próprio elemento dentro das cordas,
Ray, Ray, se eu fizer uma, então nós vamos ter a segunda linha que você pode ver aqui para que você possa ver
exatamente a mesma linha. O único problema com isso é que agora, se eu quiser Teoh desconectar cada palavra por conta própria, a fim de traçá-lo na tela. Não serei capaz de fazer isso facilmente. Então, em vez disso, eu realmente criei apenas uma string para texto, e eu vou usar uma função chamada Join. Junte-se basicamente junta uma matriz de strings em uma linha de string usando um caractere. Então, se você quiser juntar com uma vírgula do que cada elemento na string, Array vai ter um comum depois dele. Mas ele será unido em uma corda. Então vamos experimentá-lo com um estranho, talvez procurando personagens, ou você pode realmente vê-lo unido. Nenhuma junção requer uma matriz de string e um caractere. Agora a matriz de string vai ser retornado para comprar cargas strings. E então o personagem é o que você dá aqui e para personagens. Talvez eu tenha usado esse personagem para que possamos vê-lo. E então se eu plantar texto de linha e vai ser uma cadeia muito longa unida por este caractere. Então, se você pode ver aqui, eu me lembro quando e então nós pegamos essa linha e então eu me lembro. Lembro-me de quando perdi a cabeça e depois é outra linha, por isso sabemos que está a funcionar, por isso, em vez disto, vou torná-lo um espaço. Quero juntar-me a todos estes. Ele está no seu espaço. Então tudo isso é uma string agora e agora queremos separar cada palavra em uma matriz de palavras. Então eu vou criar outra matriz onde eu vou criar outra string e
vai ser uma matriz, este tipo. E vou chamar-lhe palavras. Palavras é basicamente dividir esse texto longo usando cada espaço nesse texto. Então não só o espaço com o qual juntamos as cordas, mas até mesmo o espaço entre cada palavra. Você pode fazer isso. Usando esta função de clipe e divisão leva em argumentos uma força e o caractere que você deseja dividir por. Então, se você escolher dividir pela letra T do que cada letra, T estará dividindo o que estiver entre elas. Então eu vou apenas usar a string de texto e, em seguida, para um caractere, eu vou usar o espaço. Agora. Se você imprimir o primeiro valor das palavras, então pegamos eu. Se eu imprimir o segundo valor, será lembrado. Então agora eu sei que cada palavra está dentro da corda direita palavras douradas, e agora eu posso usá-lo a fim de plotar na minha tela. Podemos fazer isso usando um loop for. Vou criar um design estático. Então pare o loop e, em seguida, dentro da função gaveta vai criar para um loop. E o loop for vai ser menos banda, as palavras dispostas comprimento para que eu possa usar a função de texto que usamos antes várias vezes e dentro da função de texto. Sabemos que é preciso uma palavra ou uma força, e as palavras são na verdade um monte de cordas, e eu vou usar o índice para colocar cada palavra dentro das palavras, tudo bem, e então eu vou citá-los anúncios. O que é dividido por dois em altura, dividido por dois e novamente porque o valor padrão para Phil é que os brancos teriam que
mudar de volta para a falta, você sabe, para vê-lo. E se você quiser que o texto seja alinhado ao centro, eu vou usar o alinhamento de texto. É para o centro, e eu posso ver que as palavras estão realmente no centro. Não. Em vez disso, vou usar um valor aleatório para cada palavra. Então eu vou colocar o preenchimento dentro da minha matriz para que eu possa obter um Phil aleatório para cada palavra. E nós usamos o modo de cor actriz foi porque é muito mais fácil para mim aleatorizar mm para matiz e saturação. Eu só vou fazer 60 para ação sexual e 100 para brilho e para ele ia ser aleatorizado. Então, agora, se eu rodar isso, vamos ver um monte de cores. Eu também posso deixá-lo com a maior saturação e brilho. Podemos ter um arco-íris de cor? Agora sabemos que todas as palavras estão realmente em cima uma da outra, então precisamos aleatorizar a posição para aqueles de zero a largura e de Zeros Heights para X e y. Agora eu posso ver que temos tela preenchida com todas as palavras das letras da música The Crazy , no meu exemplo, na verdade giraram cada uma delas. Então eu usei push matrix e pop me truques novamente para criar uma camada diferente para cada um do texto. E então eu costumava traduzir para mover o texto para a posição aleatória em vez de movê-los eles mesmos porque eu quero girar a tela. Não, isso pode ser em 00 pontos de cada uma dessas camadas que eu vou. Então agora eu posso girar sem ele quebrar nada para mim. E vai ser uma rotação de amigos, , de zero para um círculo completo. Então dois pi agora eu posso vê-los girados. Você também pode adicionar margens a ele. Então, se eu quiser aleatorizar a posição, talvez eu queira adicionar Arjun. Então eu vou fazer de margem para com margem de menos. Então eu estou basicamente dizendo pela margem que eu criei, eu ainda não o criei, mas talvez eu quisesse ter 50 pixels. Isso vai ser aqui e, em seguida, 50 pixels desta ciência vai t para aqui. Então eu vou fazer 50 e, em seguida, com menos 50 e, em seguida, eu vou fazer o mesmo para a altura. Então, a partir da margem, que vai ser 50 até alturas menos a margem, que ia ser 50 novamente, vamos criar margens. Faça 50 pixels. Agora você pode ver que ele foi empurrado para o centro e agora temos bordas de 50 pixels em todos os lados. Neste momento, você tem muita informação para processar e muitos exemplos para praticar, a fim de
criar seus projetos finais. Não estou esperando grandes projetos. Só queria criar algo que mostrasse o que você aprendeu com essa aula. Não se intimide com a quantidade de informações que você recebe desta classe. Eu sei que o exemplo começou fácil, e então eles começaram a se tornar mais intermediário e seus fãs. Mas eu queria ser assim porque eu não quero assumir que você não será capaz de
entender nada disso porque eu sei que é fácil. É preciso muita prática só para entender como as coisas funcionam. Mas uma vez que você descobrir tudo, você vai ser capaz de fazer tudo isso em um instante. Eu realmente não memorizei todas essas funções apenas em uma sessão. Eu fiz um monte de produtos diferentes que foram quebrados que me fez memorizar e entender todas essas funções e propriedades que eu estou usando uma e outra vez. Então, para as funções conjuntas e divididas, por exemplo neste exemplo, eu não sabia que Em apenas uma noite, eu realmente tinha que olhar para a documentação, olhar para os exemplos de outras pessoas e descobrir Como posso abordar este exemplo? Além disso, o
planejamento é uma boa maneira de iniciar seu projeto. Eu sempre planejei meu projeto, especialmente em um pedaço de papel ou esboçando no iPad ou no meu computador. Só torna mais fácil para mim perceber o projeto que estou criando. Então, uma vez que eu visualizá-lo, ou uma vez que eu vê-lo em um pedaço de papel, eu sou capaz de entender exatamente o que eu preciso. Então eu não apenas criar as variáveis diretamente fora do apoiado quando eu começo meu projeto. Definitivamente não é como o processo funciona, mesmo para esses projetos que criei para os conceitos básicos de design que tive que testar uma e
outra vez para torná-los simples mas eficazes para que você possa expandir seu conhecimento em este reino da arte generativa. Para o próximo capítulo, vamos exportar alguns desses designs com base no que você está criando. Então, se for uma animação, vamos salvar quadros para criar um filme a partir deles. Além disso, vamos salvar imagens estáticas e também vamos salvar imagens vetoriais para que você possa
usá-las um ilustrador ou qualquer software vetorial mais tarde. Então, se você quer aprender isso, vamos para o próximo capítulo.
43. Capítulo 4: saída de design: Agora que temos todos esses exemplos divertidos, o próximo passo seria exportar. Esses projetos neste trator falarão um pouco sobre as formas como podemos exportar nosso trabalho. Seja uma esteira ou uma animação, isso dependerá muito do tipo de trabalho que você está criando, então vamos entrar no próximo vídeo para saber mais.
44. Salve e exportação: OK, continue com o último exemplo deles. Eu vou Teoh, me
ensine como exportar um PNG ou apenas uma imagem estática. Se é uma grande
lesão, não importa. Mas eu costumo salvar minhas imagens como PNG só porque é o que eu uso mais. Agora você não precisa de nada extravagante para salvar suas imagens e na maioria das vezes . É por isso que na verdade Dio Now, se você executar este programa agora, você vai ter uma imagem estática. Então esta é a maneira mais fácil de salvar suas imagens se você tem imagem estática que você deseja salvar, o único problema com isso é que ele vai salvar a resolução que você criou. Isso significa que minha imagem vai apostar 400 por 400 pixels onde quer que eu a leve. Então, se eu levar para o Instagram, por exemplo, não
sei se vai funcionar. Mas se funcionar, a resolução não será boa porque é uma imagem muito pequena. E para esta pequena imagem de forno, não
seremos capazes de salvá-la para um fundo de parada de poeira, por exemplo, porque ele vai ser pixelado e esticado. A primeira coisa que você precisa notar sempre que quiser salvar sua imagem é dedo tem o tamanho
correto aqui. Então, se você quiser salvar uma imagem de 1920 por 10 80 para talvez um filme ou para salvá-la como uma miniatura para um vídeo, então eu vou ter que mudá-la aqui para 19 por 1920 por 10 80. Mas agora, se eu
executá-lo, ele pode realmente sair da minha tela. Não é fora da minha tela porque eu tenho uma tela grande, mas para você agora, porque eu só tela gravar parte da minha tela vai ser fora de proporção. No entanto, às vezes quando eu quero Teoh salvar imagens que são enormes, ainda maiores que 1910 por 10 80 eu definir o tamanho para isso, e eu não me importo se ele realmente vai para fora da minha tela porque eu só quero salvar a imagem e, em seguida, verifique. E também esteja ciente de que se você projetar em 400 por 400, em seguida, criar o mesmo design e uma tela
maior, você vai ver que há mais espaços entre as palavras que nós criamos dizer pode talvez escalá-lo alterando o texto usando a função de tamanho do texto, onde você pode criar mais letras ou adicionar mais letras ao seu arquivo de texto. Ah, quatro formas do que você pode talvez redimensioná-los ou aumentar o número deles. Por enquanto, vou guardá-lo em 400 por 400, porque não me importarei com a resolução por enquanto. E eu só quero que você veja onde ele vai ser salvo e como assim. Se eu executar isso, vamos ver nosso projeto de volta ao normal. E depois que tudo é executado para dentro da minha função de desenho depois de cada pedaço de código eu
vou escrever uma função chamada Safe Save só salva uma imagem para o nome do arquivo do caminho do arquivo que você criou, então ele espera uma string e dentro do meu string. O que eu costumo fazer se eu sei que vou salvar um monte de imagens é criado uma pasta chamada Saída. E dentro disso eu vou salvar minhas imagens. Então, a maneira que eu posso criar a pasta de dentro deste arquivo de esboço é escrevendo um dentro da minha string como um pacote. Então eu escrevo saída e, em seguida, as barras vão indicar que esta é uma pasta que eu quero você crie. E então dentro disso, eu posso imaginar ponto p m D ou doutor uma cavilha. Qualquer extensão que você deseja criar para uma imagem, eu acho que há várias extensões que são suportadas. Você pode verificar a documentação, mas eu sei com certeza que J. Paige e PNG são suportados, e ele pode criar o nome que você quiser aqui. Basta observar que se você executar a imagem ou toda vez que você executar a imagem, ela será substituída porque a mesma imagem ou o mesmo nome para a imagem. Se você não quiser que ele esteja em uma pasta separada, você pode simplesmente remover esta parte e ele
vai salvá-la no mesmo arquivo, algo para salvá-lo no mesmo arquivo de esboço. E esta é a minha pasta aqui, e agora se eu
salvá-la, ela vai para a saída aqui. Eu vou correr, e depois que eu criei minha função de dizer, às vezes vai ser muito mais lento se você quiser salvar,
e então se eu olhar para minha pasta agora, eu tenho minha imagem, Safed. Mas ele pode ver que é muito pequeno, e se eu quiser aumentar o tamanho, é realmente muito pixelizado. Agora eu vou mostrar a vocês o que acontece se eu realmente guardá-lo em um tamanho maior. Então, digamos 800 por 800. Agora vai substituir a imagem antiga, e esta é a nossa nova imagem. É menos pixelado do que o anterior se eu aumentar o tamanho ou Zuman vai ser menos pixelado do que o anterior. Então é por isso que você tem que saber que o tamanho da tela re vai afetar sua saída, voltando para o exemplo de rotação onde criamos a estrela. Vamos salvar isso como uma animação, então vamos salvar cada quadro da animação Now. Podemos fazer isso também da mesma forma que dissemos função. Mas em vez de escrever uma função segura, vou usar as funções de quadro seguro e é assim e requer uma string também. Neste arquivo não está salvo são agora, Então isso não vai funcionar, então eu tenho que salvar meu arquivo. Não, eu tenho meu arquivo salvo, e dentro dele porque eu vou salvar cada quadro vai ter um monte de imagens dentro do meu pai. É muito mais agradável e mais limpo se você colocá-lo dentro de um mais cheio. Então eu vou criar a pasta, desta vez chamada Saída. E aqui vou adicionar hashes para o número de quadros. Então, geralmente eu adiciono quatro hashes e depois a extensão. Então eu criei P e G. Não, os hashes serão substituídos por números ou pela contagem do quadro. Então o primeiro 1 vai ser 0001 e então o segundo 1 vai ser três zeros e 2/3 1 vai ser enquadrado três, e vai continuar e continuar. Se você chegar a um quadro que tenha mais de quatro
dígitos, ele adicionará 1/5 dígitos a ele, então não se preocupe com isso. Então, se você quiser que seus amigos realmente comecem com apenas um dígito,
ele irá adicionar aos outros dígitos para ele. Mas eu gosto de começar com para hashes porque na maioria das vezes eu vou chegar 1000. E agora se eu salvar isso, podemos ir para o nosso arquivo e podemos ver que agora temos uma pasta de saída, e dentro dela podemos ver cada quadro impresso ou salvo nesta pasta. Então, se eu chegar a uma posição e a animação onde
eu estou feliz com, eu vou parar isso e olhar para o meu PNG final se ele está quebrado e não salvo ainda, então eu vou apenas viver isso para que ele não quebra minha animação quando eu quero criá-lo dentro do processamento. Se você vai para as ferramentas e então você vai para o Maker, um dentro do cineasta, você vai escolher a pasta onde você tem toda a sua imagem vai para a área de trabalho porque é onde eu tenho meu arquivo de rotação. E então eu estou escolhendo saída. E agora se eu
abri-lo, ele vai mudar o caminho aqui e agora para largura e altura, eu vou verificar. O mesmo tamanho é original. Se você não quiser marcar isso e quiser alterar o tamanho que você pode, mas é melhor usar o mesmo tamanho para que não estrague sua animação. E então eu vou escolher a mesma taxa de quadros que meu amigo direito no design. Então eu vou fazer 60 e eu vou deixar a compressão como animação. E se você quiser arrastar um arquivo de som para isso, você pode ah, você pode adicionar um para que você possa adicionar pode ser música ao seu design. E então eu vou dizer, Criar filme e então ele vai me perguntar onde salvá-lo. Vou guardá-lo na mesma pasta do meu sketch Nikkan. nome que quiser, então vou chamá-lo de Rotação de Filme. E agora, se eu rodar o filme que eu
criei, eu vou ter a mesma animação que eu salvei do meu esboço. Eu tive um problema ao abrir este arquivo de filme no jogador de tempo rápido, mas você pode abrir uma inveja Elsie ou qualquer outro. Você também pode converter seu filme para MP quatro e carregado para qualquer
plataforma de mídia social . Agora, para uma última maneira de salvar, vamos salvar um arquivo vetorial. Não, vou voltar ao meu primeiro exemplo e à seção tipógrafo para mostrar como salvar
arquivos vetoriais ou arquivos PDF que você pode abrir um ilustrador e manipular ainda mais. Não, esse tipo de economia é um pouco mais complicado do que os outros, mas ainda é muito fácil de realizar. A primeira coisa que você precisa é a biblioteca pdf do processamento. A fim de importar uma biblioteca para o processamento, você pode simplesmente usar a palavra-chave de importação e a biblioteca de processamento ou a biblioteca pdf dentro do processamento está dentro deste. Então, se você digitar o processamento dot pdf e, em seguida, pontos e, em seguida, uma estrela, que significa que cada classe ou cada função e lado do pdf agora ele pode ter acesso a salvar PDS e, em seguida, salvar PDS, você tem que abranger tudo o que você tem criado. Então, se você colocar os métodos de salvamento aqui,
em seguida, seu arquivo vai ter traçados porque ele não viu nenhum traçado. Então ele não entende que você não quer os traços, então você tem que colocá-lo antes de tudo. Você vai ter que colocá-lo antes do fundo, a menos que você altere a cor de fundo. Então eu vou apenas colocá-lo aqui por enquanto, e ele vai como este início de gravação porque ele grava a tela até você parar a gravação. Então eu vou começar a gravação quando eu começar meu esboço tão dentro da minha
função de configuração , e então os argumentos que você usa dentro do registro start é o tipo de gráfico que você vai usar. Então aqui ele vai manter pdf e, em seguida, o outro argumento vai ser o nome do seu arquivo. Então eu vou apenas chamá-lo de Fator Dot PDF. Agora, isso vai começar a gravação, então eles estão moagem vai começar, e isso nunca vai parar. Então, se eu executar isso agora e eu começar a digitar dentro do meu arquivo, você vai ver um arquivo vetorial que tem zero kilobytes. Então não tem nada porque a gravação nunca terminou. Então eu tenho que adicionar uma condição ou um lugar onde eu possa terminar a gravação. Agora você pode terminar a gravação no final de sua função de desenho se você tivesse coisas acontecendo aqui. Mas como estou trabalhando ativamente na minha tela, não
posso terminar a gravação arbitrariamente em qualquer lugar. Para isso, Eu vou ter que adicionar outra condição se que verifica para uma das teclas no meu teclado que termina a gravação. Então eu vou usar um F condicional. E então, em vez de tecla, eu vou usar o código de chave de revestimento tem algumas das teclas no teclado, como para cima, para baixo e setas direita e esquerda. Então, para rastrear e para que funcione, não
posso usar a chave. Terei que usar o código chave. Então eu vou caminhar se o código de chave é igual, uh, e tudo isso você pode encontrar na documentação e então se o código chave é também se ele acertar a seta para cima. A razão pela qual eu não usei nenhum alfabeto é porque eles são usados para digitar as formas , mas geralmente eu nos uso para começar o registro e E.
T. T. e a gravação. Mas para este exemplo, eu vou apenas usar um dos códigos de chave que eu tenho que eu realmente não usei dentro do meu programa. Vou digitar e gravar. Então, agora, se eu executar isso novamente e eu começar a digitar e então eu apertar a seta superior e voltar para meu arquivo, ele pode ver que eu tenho meu estado de design agora. O que é legal sobre Pdd's é que você pode vê-los em qualquer tamanho, mas eles serão nítidos, então eles são arquivos vetoriais e eles não vão comer Pixel e você pode abri-los. Um ilustrador. Você pode encontrar todos estes realmente seccionados fora, de
modo que cada uma dessas formas vão ser sua própria forma, e você também pode re colori-los. Você pode reorganizá-los como quiser. Então, mesmo se você criar designs dentro do processamento e quiser exportá-los para posteriormente usar polegar em um arquivo vetorial ou em um software vetorial, então você pode fazer isso facilmente com PDS. E agora, se eu for para a direita, clique nele e você abrir com eu posso facilmente abri-lo com o Illustrator. Mas saiba que se você abrir um ilustrador, ele terá uma máscara, então você terá que liberar a máscara ou soltá-la e usar as formas dentro. Isso, é claro, só vai funcionar com alguns projetos porque se fizermos isso com nossa estrela projetada, por exemplo, ou um de nossos círculos malucos, então não vai funcionar porque o arquivo é vai ser muito feliz para o Illustrator ,
por exemplo, para abri-lo porque ele vai encontrar um monte de formas nesse arquivo, e será muito lento para você navegar pelo arquivo. E não faz sentido reorganizar coisas assim de qualquer maneira. Então até mesmo o ruído e aleatoriedade onde usamos pontos e usamos o andador aleatório que para
processar para abrir é extremamente, extremamente pesado. Portanto, não é uma boa idéia salvá-lo como um PDF para abri-lo um ilustrador. Mas ele concebê-lo como um PDF e, em seguida, converter o PDF em PNG para que você possa usar uma imagem de alta qualidade. Seria uma ideia muito boa. Você sabe, que nós realmente terminamos tudo relacionado a projetar e exportar nossos projetos. Você está pronto para alguma inspiração. Então, no próximo capítulo, eu vou falar tudo sobre inspiração onde você pode obter mais trabalho para a arte generativa ou de onde você pode obter mais prática, então vá para o próximo capítulo para aprender mais sobre isso
45. Capítulo 5: pensamentos finais: Parabéns por ter chegado até aqui. É hora de descobrir para onde ir a partir daqui. Final Tractor é tudo sobre como entender como codificar por conta própria lendo a documentação e passando por exemplos, encontrando tutoriais e alimentando seus olhos com muita inspiração. Não posso enfatizar o quão importante é a documentação. Quanto a um programador, é basicamente que você é receptivo a tudo o que precisa saber. Temos sorte que a página de referência dos processos é extremamente útil. Com o excedente de exemplos ao longo, eu recomendo que você comece por aí e explore as possibilidades oferecidas por eles. Quando você sentir que está pronto para enfrentar alguns projetos mais avançados, você pode tentar. Os desafios de Daniel Schiffman no YouTube foram até visitar sua natureza da página de código, onde você pode aprender tudo sobre física de simulação e meus agentes favoritos de Rickard. E se você é uma pessoa do livro do que o design experimental livro escrito por quatro artistas cujos nomes eu não vou tentar pronunciar é incrível e mergulha em um monte de
tópicos mais avançados do que esta classe. Há também uma seção sobre visualização de dados. Se você está em que também aqui em compartilhamento de habilidades, se você pesquisar arte generativa ou codificação criativa, você pode encontrar alguns artistas cujas aulas são divertidas de tomar agenda. Artista chamado Melissa é um dos meus favoritos agora, para alguma inspiração, Instagram é definitivamente o caminho a seguir, Dr Hashtags codificação generativa ou criativa. E para algumas pessoas específicas seguirem, eu recomendo essas contas incríveis.
46. Projeto final: Agora é a sua vez para o seu projeto. Nosso dinheiro para incluir pelo menos dois conceitos do trator de design Basics. Por exemplo. Neste projeto, eu usei forma e cor. E para este, eu é moldado e imagem. Cabe a você como você quer combiná-los, desde que você esteja sendo criativo com ele. Esta é uma pontuação básica, então eu não espero que você faça grandes projetos. É apenas uma demonstração de sua compreensão deste curso. Também nem todos os grandes projetos têm uma variedade de cores. Preto e branco ainda são considerados parte do módulo de cores. Alguns grandes artistas, como um Jacob bronzeado usavam preto e branco em suas animações. Então, se você acha que deseja criar uma obra de arte com formas em preto e branco, então faça o seu projeto ter que ser fiel a você.