Giter VIP home page Giter VIP logo

material-aulas's People

Contributors

al3db avatar alexispremium avatar arthurpera avatar betinat avatar camilasb avatar d195983 avatar darasignoreti avatar demovillares avatar fabi-costa avatar giovana-morais avatar giovane-93 avatar guilhermegam avatar hackmd-deploy avatar helenasulz avatar jpfaeh avatar jul-ah avatar kvc-arq avatar larissanegris avatar lucas-costa-22 avatar lucianamarques avatar maraizaadami avatar omyasuda avatar rgobatto avatar rrroda avatar sedir avatar v245361 avatar villares avatar vinialcam avatar xtecna avatar zehasni avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

material-aulas's Issues

Acessar links por meio de Imagem

Seria possível inserir um link (de qualquer natureza) no código para que uma pessoa conseguisse clicar na imagem que se forma e acessar o endereço?

Um exemplo seria um botão em um website para entrar em outra página.

Obrigada :)

Mayara Silvestrini

Interação 3D em projeto de massas.

É possível através do desenho 3D, eu realizar uma visualização em vídeo percorrendo pelos elementos criados? Uma espécie de vídeo 3D de um projeto de arquitetura por exemplo, formado apenas pelos elementos sólidos, a fim de criar um projeção de projeto de massas a ser construído em função do terreno.

Criar página em português sobre como usar pyp5js no material-aulas

A documentação do projeto pyp5js (que é experimental), criado por @berinhard, está em inglês para atrair colaboradores no mundo todo. github.com/berinhad/pyp5js

Para as pessoas iniciantes em programação, aqui neste material-aulas, podemos ter uma página com as instruções de instalação e uso em português!

Sabemos que, por ser experimental, o projeto pode ainda mudar muito e possivelmente vamos ter que atualizar essa nossa página.

Demonstrar ".get()" para obter cor de pixels de uma imagem

Exemplo:

 def setup():
    size(500,500)
    global imagem
    imagem = loadImage('arquivo.png')
    
 def draw():
    iw, ih = imagem.width, imagem.height
    print(iw, ih)
    cor = imagem.get(mouseX, mouseY)
    fill(cor)
    noStroke()
    image(imagem, 100, 100, 230, 240)
    circle(mouseX, mouseY, 30)

Exportando Animações

Oi Alê, tudo bem?

Tive problemas com a exportação de video nessa explicação:
https://abav.lugaralgum.com/material-aulas/Processing-Python/exportar_animacoes#c-biblioteca-video-export

Esse site www.ffmpeg.org te da uma opção de baixar um source code ou uns pacotes e executáveis para os sistemas operacionais. Eu baixei o source e uns pacotes do mac mas vem com uns formatos estranhos e não consigo rodar.

Daí, quando colei o código que estava na página da sua explicação, ele retornou esse erro:
Captura de Tela 2020-06-29 às 17 22 04

obrigada <3

Página sobre `lerp()` e `lerpColor() faltando!

Precisa explicar...
image

from __future__ import division # usando divisão do Python 3

def setup():
    size(500, 500)
    
def draw():
    background(200)
    noStroke()
    dots(width / 2, height / 2,
         mouseX , mouseY,
         color(255, 255, 0),
         color(0, 255, 255), 
         steps=20,
         dot_size=10)
    
def dots(x1, y1, x2, y2, ca, cb, steps=10, dot_size=10):
    L = dist(x1, y1, x2, y2)
    A = atan2(x1 - x2, y2 - y1)
    pushMatrix()
    translate(x1, y1)
    rotate(A)
    if L < steps * dot_size:
        steps = int(L / dot_size)
    for i in range(steps + 1):
        y = 0
        if steps > 0:
            p = i / steps
            y = lerp(0, L, p)
            cor = lerpColor(ca, cb, p) 
            fill(cor)
        rectMode(CENTER)
        rect(0, y, dot_size, dot_size)
    popMatrix()

Escrever sobre 'colisões'

Colision detection é um material imenso...
tem um site inteiro de referência, não tou lembrando agora

Demonstrar uso de recursos vetorias em SVG

Código nos exemplos demonstrando loadShape():

def setup():
    size(280, 360)
    global bot
    bot = loadShape("bot1.svg")

def draw():
    background(102)
    shape(bot, 110, 90, 100, 100)
    shape(bot, 280, 40)

Requer arquivo bot1.svg na pasta data.

Explicar: Como usar mais abas em um *sketch*?

  • como criar nova aba nome_aba.py
  • precisa usar from nome_aba import * (ou, mais elegante, from nome_aba import funcao, Classe)
  • PRECISA SALVAR SEMPRE QUANDO USA ABAS
  • Documentar problema dos "acentos", caracteres não-ASCII na segunda aba
    • como resolver acrescentando # -*- coding: utf-8 -*-

Como exportar GIFs

Ao criar animações como podemos exportar em formato GIF?

Para exportar PNG usamos as seguintes linhas:

def setup():
    size(500, 500)

def draw():
    background(0, 0, 200)
    x, y = random(width), random(height)
    circle(x, y, 100)

def keyPressed():
    if key == 's':
        saveFrame("frame.png")
        print("PNG salvo")

Como proceder com relação a animações que queremos salvar em formato GIF?

Atendimento - Perguntas extras

Oi Alexandre, tudo bem? É a Fernanda.

Desculpa, não sei se é o jeito/canal certo de fazer isso, mas não consegui achar seu e-mail então estou experimentando por aqui. :)

Vou deixar aqui as perguntas que acabei não conseguindo falar com você no nosso atendimento, acredito que possa ser do interesse de outras pessoas também, pois são bem gerais.

Segue:

• Como transportar um programa gerado no processing pra outros ambientes e deixa-los interativos?

  • conseguimos colocar em um site por exemplo?

• Tem algum livro / curso / site bom com matemática básica para programação?

  • pergunto isso porque estou longe dessa realidade há muito tempo e sinto que as vezes tenho dificuldade não de entender, mas de tornar mais fluido, coisas básicas, de pertencimento, maior/menor que, variáveis, etc.

• Dá pra escrever com alguma interação dentro das letras?

  • por exemplo, escrevermos um texto no programa e ter algo acontecendo, uma interação/distorção, etc, dentro das letras?

• Fluxos, setas - quais funções usar?

  • peguei um projeto de id. visual agora que queria aproveitar para explorar o processing, e ele tem esse conceito de fluxos, setas, etc. Não sei ainda o que vou fazer, mas imagino um conjunto de objetos setas, linhas, bolinhas, não sei que se movam num mesmo fluxo ou até fluxos diferentes. Não sei se tem algumas funções específicas ou páginas que poderia indicar para estudar isso?

• por fim, fiz um pad com alguns códigos que encontrei no seu material que achei difíceis de entender, então seria legal poder falar sobre eles, só o do olho, eu que fiz, mas gostaria que as pupilas acompanhassem o mouse sem obviamente sair da iris. haha. Aqui o link: [editado] https://gist.github.com/villares/7eb6b7c79f67d888dfec2daedee08119

beijos e muito obrigada! <3

Exemplo de seno e cosseno faltando

def setup():
    size(500, 500)
    rectMode(CENTER)
    
def draw():
    background(200, 200, 240)
    tam1 = 120 + 100 * sin(radians(frameCount))
    tam2 = 120 + 100 * cos(radians(frameCount))
    rect(250, 250, tam1, tam2)

Acrescentar perguntas, sugestões de exercício com resposta 'oculta'

Para tornar o material mais eficiente quando usado fora do contexto da aulas, seria interessante incluir perguntas e pequenas atividades acompanhadas pelas respostas não imediatamente visíveis, como em: Sequências e repetições

Para fazer isso é possível no markdown do GitHub usar marcação HTML como neste exemplo:

#### Qual você acha que é o resultado de `range(1, 11)`?
<details>
  <summary>clique para ver a resposta</summary>

`[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]`

Podemos usar `range(parada)` ou `range(inicio, parada)`, o número início está incluso, o número de parada não é incluso.
</details>

---

Note que é necessária uma linha em branco após </sumary> e após </details>. Veja abaixo o resultado:


Qual você acha que é o resultado de range(1, 11)?

clique para ver a resposta

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Podemos usar range(parada) ou range(inicio, parada), o número início está incluso, o número de parada não é incluso.


Explicar como carregar uma imagem PNG ou Raster

Com código exemplo loadImage()

Exemplo:
def setup():
size(400, 400)
global imagem
imagem = loadImage("image.jpg")

def draw():
background(255)
image(imagem, 0, 0)

OBSERVAÇÕES:
Arrastar a imagem em JPG para a tela do processing.
Verificar se a imagem está na pasta data (Command + K)
Colocar no lugar de "image.jpg" o nome do arquivo que escolher

Exemplo de orientação a objetos - Slider

  • mostrar como usa a classe Slider

exemplo:

from slider.py import Slider

def setup():
    global seed, t, a, ang
    seed = int(random(1000))
    print(seed)
    size(500, 500)
    t = Slider(10, 100, 50)
    t.position(10, 20)
    a = Slider(0, 360, 45)
    a.position(10, 60)
        
def draw():
    global ang
    randomSeed(seed)
    background(240, 240, 200)
    tamanho = t.value()
    ang = radians(a.value())
    translate(250, 300)
    galho(tamanho)   
     
def galho(tamanho):
    reducao = .8
    strokeWeight(tamanho / 10)
    line(0, 0, 0, -tamanho)
    if tamanho > 5:
        pushMatrix()
        translate(0, -tamanho)
        rotate(ang)
        # stroke(255, 0, 0)
        galho(tamanho * reducao - random(0, 2))
        rotate(-ang * 2)
        galho(tamanho * reducao - random(0, 2))
        popMatrix()
           

classe no arquivo slider.py https://github.com/villares/python-sliders/blob/master/RotatingTriangles/slider.py

class Slider:

    def __init__(self, low, high, default):
        """
        slider has range from low to high
        and is set to default
        """
        self.low = low
        self.high = high
        self.val = default
        self.clicked = False
        self.label = ''  # blank label
        self.w, self.h = 120, 20

    def position(self, x, y):
        """slider's position on screen"""
        self.x = x
        self.y = y
        # the position of the rect you slide:
        self.rectx = self.x + map(self.val, self.low, self.high, 0, self.w)
        self.recty = self.y

    def value(self):
        """updates the slider and returns value"""
        pushStyle()
        pushMatrix()
        resetMatrix()
        rectMode(CENTER)
        # gray line behind slider
        strokeWeight(4)
        stroke(200)
        line(self.x, self.y, self.x + 120, self.y)
        # press mouse to move slider
        if mousePressed and dist(mouseX, mouseY, self.rectx, self.recty) < self.h:
            self.rectx = mouseX
        # constrain rectangle
        self.rectx = constrain(self.rectx, self.x, self.x + self.w)
        # draw rectangle
        strokeWeight(1)
        stroke(0)
        fill(255)
        rect(self.rectx, self.recty, self.w / 12, self.h)
        self.val = map(
            self.rectx, self.x, self.x + self.w, self.low, self.high)
        # draw label
        fill(0)
        textSize(10)
        textAlign(CENTER, CENTER)
        text(int(self.val), self.rectx, self.recty + self.h)
        # text label
        textAlign(LEFT, CENTER)
        text(self.label, self.x + self.w + self.h, self.y)
        popMatrix()
        popStyle()
        return self.val

Qual é o comando para a quebra de linhas?

Qual seria o comando para a quebra de linha, evitando a repetição do uso do print?

Exemplo:
def setup():
print('Senhora Aline')
print('sua fatura vence no dia 01/12')

A minha dúvida está voltada principalmente para parágrafos grandes.

Instruções do download da biblioteca para VideoExport

Talvez só para deixar mais claro, porque eu no início fiquei um pouco confuso pra fazer essa parte, é assim mesmo?

O lugar do site para baixar o .zip, pra cada OS:
Captura de Tela 2020-06-11 às 16 27 47

Também é necessário baixar isso no próprio programa, sim?
Captura de Tela 2020-06-09 às 17 59 52

E dizer que o .exe deve ser instalado através do próprio Processing também.

Explicar exportação da PDF

  • exportação básica (um frame)

  • exportação de múltiplas páginas

  • exportação de grandes formatos

  • exportação com acumulação de vários frames

    • salvando em tempo real fica lerdo
    • outras opções são:
      • acumular uma estrura de dados e desenhar de uma vez
      • desenhar num PShape e desenhar de uma vez

Como trabalhar com som no Processing modo Python?

No código os gráficos sofrem influência do movimento do mouse, seria possível que ao invés disso, ao incluir música os gráficos mudarem por influencia das batidas da música?

def setup():
    size(600,600)
    noFill()
    strokeWeight(3)
    colorMode(HSB)

t = 0 #time veriable
NUM_TRIS = 90

def draw():
    global t
    background(0)
    translate(width/2, height/2)
    NUM_TRIS = map(mouseX,0,width,3,120)
    for i in range(int(NUM_TRIS)):
        rotate(radians(360/NUM_TRIS))
        pushMatrix() #save this orientation
        translate(200,0)
        offset= map(mouseY,0,height,1,10)
        rotate(radians(t+offset*i*360/NUM_TRIS))
        stroke(3*i,255,255)
        tri(100)
        popMatrix() #return to saved orientation
    t +=0.5
    
def tri(length):
    '''Draws an equilateral triangle of given
    length around the center of the triangle'''
    triangle(0,-length, -length*sqrt(3)/2,length/2,
             length*sqrt(3)/2,length/2)

1
`
Código retirado do tutorial: https://www.youtube.com/watch?v=gLt1cN3CDDY&t=26s

Como exportar imagens sem substituir imagens que já foram exportadas anteriormente?

No texto Como exportar uma imagem, é dito que adicionando caracteres "#" no final do nome do arquivo, ele é salvo com o número do frame. Porém, se já existir um arquivo salvo com esse nome, ele é substituído. Existe alguma maneira de impedir isso?

Eu pensei em adicionar um número randômico no final do nome do arquivo, mas isso não é 100% seguro porque mesmo um número randômico pode se repetir. Outra coisa que eu pensei seria adicionar um código que combine data e hora de criação do frame no final do arquivo.

Melhorar syntax highlight do markdown renderizado em abav.lugaralgum.com/material-aulas

Resolvi a issue #44 acrescentando um arquivo assets/css/syntax.css qualquer, mas ainda não está muito bom:

  • ele não entende ```pyde```python (culpa do tal Rouge talvez...)
  • não fica igual ao do repositório (culpa do CSS mesmo)

Entre e compare:
http://abav.lugaralgum.com/material-aulas/Processing-Python/escopo_py.html
https://github.com/villares/material-aulas/blob/master/Processing-Python/escopo_py.md

Alguém quer me ajudar com isso?

Documentar como se contribui com este repositório

Como contribuir com este material didático

Work in progress!!! https://github.com/villares/material-aulas/blob/master/como-contribuir.md

Passo 0

Crie uma conta no GitHub

Issues

Issues são a forma de registrar problemas e desejos de aprimoramento para um projeto. Criar uma issue pode ser já uma boa contribuição para um projeto.

Para criar uma issue:

  • leia com cuidado o material para identificar lacunas ou problemas;
  • veja se não tem uma issue parecida já (você pode comentar nela algum detalhe);
  • clique no botão verde New issue.

Maneiras de usar o GitHub

  • Interface web <- comece por aqui
  • GitHub Desktop
  • no terminal

Para propor correções ou acrescentar novos materiais

  • fazer um fork (que é um repositório com o material na sua conta do GitHub)

  • criar um branch (com um nome sintético da contribuição)

  • como modificar arquivos

  • como subir arquivos (em geral)

  • como criar um arquivo Markdown (.md)

    • como se escreve markdown ou GFM?
      • guias de markdown em português (links para referências externas!)
      • como fazer links externos [__](__)
      • como formata código no markdown:
        • bloco com ```python ___``` ou no meio da frase ``
      • como inserir imagens no markdown ![__](__)
        • como subir arquivo de imagem (.png preferencialmente)
  • como fazer um Pull Request (PR)

    • o que é um PR, pra quê serve, como funciona?
    • Como é a conversa com a pessoa mantenedora? Ela pode te pedir modificações/correções!
    • Importante: Não dê CLOSE quando terminar de fazer as modificações pedidas!!!
    • Como não se frustrar: como calibrar as suas expectativas.
  • Como atualizar o seu fork em relação ao repositório de origem?

Work in progress!!! https://github.com/villares/material-aulas/blob/master/como-contribuir.md

Explicar dicionários

pode ser uma boa mostrar o collections.Counter e fazer uma nuvem de palavras

#  Não sei se é um bom exemplo
estados = {'MG': {'capital':'Belo Horizonte', 'pop': 80000000},
           'AC': {'capital':'Rio Branco', 'pop': 880000},
           'RJ': {'capital':'Rio de Janeiro', 'pop': 70000000}, 
           }

estados['SP'] = {'capital':u'São Paulo', 'pop':44000000}

chave = 'AC'
if estados.get(chave):
    resultado = estados[chave]['pop']
    
print(resultado)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.