Last active
June 27, 2021 23:05
-
-
Save jbrenorv/928692bf5ea66dc2f324c0eee1277f8e to your computer and use it in GitHub Desktop.
folha_de_pixels.ipynb
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "nbformat": 4, | |
| "nbformat_minor": 0, | |
| "metadata": { | |
| "colab": { | |
| "name": "folha_de_pixels.ipynb", | |
| "provenance": [], | |
| "collapsed_sections": [], | |
| "authorship_tag": "ABX9TyOIvA/FyWVVR+z3/4QPMALf", | |
| "include_colab_link": true | |
| }, | |
| "kernelspec": { | |
| "name": "python3", | |
| "display_name": "Python 3" | |
| }, | |
| "language_info": { | |
| "name": "python" | |
| } | |
| }, | |
| "cells": [ | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "id": "view-in-github", | |
| "colab_type": "text" | |
| }, | |
| "source": [ | |
| "<a href=\"https://colab.research.google.com/gist/jbrenorv/928692bf5ea66dc2f324c0eee1277f8e/folha_de_pixels.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "metadata": { | |
| "id": "FFNcTY-fogKc" | |
| }, | |
| "source": [ | |
| "import numpy as np\n", | |
| "import matplotlib.pyplot as plt\n", | |
| "import math" | |
| ], | |
| "execution_count": null, | |
| "outputs": [] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "metadata": { | |
| "id": "FTiM0GemtxRN" | |
| }, | |
| "source": [ | |
| "WHITE = 255\n", | |
| "\n", | |
| "def draw(im, lbd):\n", | |
| " \"\"\"\n", | |
| " im: image. np.ndarray with shape (x,y,)\n", | |
| " lbd: lambda for drawer\n", | |
| " \"\"\"\n", | |
| "\n", | |
| " for y in range(im.shape[0]):\n", | |
| " for x in range(im.shape[1]):\n", | |
| "\n", | |
| " # subtrair um certo valor para mudar o centro\n", | |
| " if lbd(x - 256, y - 156):\n", | |
| "\n", | |
| " # pinta o pixel (x, y) de branco\n", | |
| " im[y][x] = WHITE\n", | |
| " \n", | |
| " return im" | |
| ], | |
| "execution_count": null, | |
| "outputs": [] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "id": "LS9tjoyV0lIW" | |
| }, | |
| "source": [ | |
| "Uma imagem (512 x 512)px preta" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/" | |
| }, | |
| "id": "ycUDJcSPpHyS", | |
| "outputId": "5b6207d2-c110-49e9-e768-537174f07376" | |
| }, | |
| "source": [ | |
| "img = np.zeros((512, 512))\n", | |
| "img" | |
| ], | |
| "execution_count": null, | |
| "outputs": [ | |
| { | |
| "output_type": "execute_result", | |
| "data": { | |
| "text/plain": [ | |
| "array([[0., 0., 0., ..., 0., 0., 0.],\n", | |
| " [0., 0., 0., ..., 0., 0., 0.],\n", | |
| " [0., 0., 0., ..., 0., 0., 0.],\n", | |
| " ...,\n", | |
| " [0., 0., 0., ..., 0., 0., 0.],\n", | |
| " [0., 0., 0., ..., 0., 0., 0.],\n", | |
| " [0., 0., 0., ..., 0., 0., 0.]])" | |
| ] | |
| }, | |
| "metadata": { | |
| "tags": [] | |
| }, | |
| "execution_count": 111 | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/", | |
| "height": 269 | |
| }, | |
| "id": "gJKs6y0FtLGh", | |
| "outputId": "303d4556-1d4a-4013-fcb4-288d7a27b1d8" | |
| }, | |
| "source": [ | |
| "# raio do circulo que define o cardioide\n", | |
| "a = 100\n", | |
| "\n", | |
| "# cardioide: r = a(1 - senθ) em coordenadas polares\n", | |
| "drawp = lambda x, y: (x**2 + y**2) < a * (math.sqrt(x**2 + y**2) + y)\n", | |
| "\n", | |
| "result = draw(img, drawp)\n", | |
| "\n", | |
| "\n", | |
| "plt.imshow(result, cmap='gray')\n", | |
| "plt.show()" | |
| ], | |
| "execution_count": null, | |
| "outputs": [ | |
| { | |
| "output_type": "display_data", | |
| "data": { | |
| "image/png": "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\n", | |
| "text/plain": [ | |
| "<Figure size 432x288 with 1 Axes>" | |
| ] | |
| }, | |
| "metadata": { | |
| "tags": [], | |
| "needs_background": "light" | |
| } | |
| } | |
| ] | |
| } | |
| ] | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment