{ "cells": [ { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "import matplotlib\n", "import matplotlib.pyplot as plt\n", "from matplotlib import rc\n", "import numpy as np\n", "from matplotlib import colors" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Funkcje do zaimplementowania:" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "#konwerter: nie trzeba implementować samemu, można wykorzystać funkcję z bilbioteki\n", "def hsv2rgb(h, s, v):\n", " #TODO\n", " return (h, s, v)\n", "\n", "# poniżej znajdują się funkcje modelujące kolejne gradienty z zadania.\n", "# v to pozycja na osi ox: v jest od 0 do 1. Zewnetrzna funkcja wywołuje te metody podając\n", "# różne v i oczekując trójki RGB bądź HSV reprezentującej kolor. Np. (0,0,0) w RGB to kolor czarny. \n", "# Należy uwikłać v w funkcję modelującą kolor. W tym celu dla kolejnych gradientów trzeba przyjąć \n", "# sobie jakieś punkty charakterystyczne,\n", "# np. widzimy, że po lewej stronie (dla v = 0) powinien być kolor zielony a w środku niebieski (dla v = 0.5),\n", "# a wszystkie punkty pomiędzy należy interpolować liniowo (proporcjonalnie). \n", "\n", "def gradient_rgb_bw(v):\n", " #TODO\n", " return (0, 0, 0)\n", "\n", "\n", "def gradient_rgb_gbr(v):\n", " #TODO\n", " return (1, 1, 1)\n", "\n", "\n", "def gradient_rgb_gbr_full(v):\n", " #TODO\n", " return (0, 0, 0)\n", "\n", "\n", "def gradient_rgb_wb_custom(v):\n", " #TODO\n", " return (0, 0, 0)\n", "\n", "\n", "def gradient_hsv_bw(v):\n", " #TODO\n", " return hsv2rgb(0, 0, 0)\n", "\n", "\n", "def gradient_hsv_gbr(v):\n", " #TODO\n", " return hsv2rgb(0, 0, 0)\n", "\n", "def gradient_hsv_unknown(v):\n", " #TODO\n", " return hsv2rgb(0, 0, 0)\n", "\n", "\n", "def gradient_hsv_custom(v):\n", " #TODO\n", " return hsv2rgb(0, 0, 0)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "def plot_color_gradients(gradients, names):\n", " # For pretty latex fonts (commented out, because it does not work on some machines)\n", " #rc('text', usetex=True) \n", " #rc('font', family='serif', serif=['Times'], size=10)\n", " rc('legend', fontsize=10)\n", "\n", " column_width_pt = 400 # Show in latex using \\the\\linewidth\n", " pt_per_inch = 72\n", " size = column_width_pt / pt_per_inch\n", "\n", " fig, axes = plt.subplots(nrows=len(gradients), sharex=True, figsize=(size, 0.75 * size))\n", " fig.subplots_adjust(top=1.00, bottom=0.05, left=0.25, right=0.95)\n", "\n", "\n", " for ax, gradient, name in zip(axes, gradients, names):\n", " # Create image with two lines and draw gradient on it\n", " img = np.zeros((2, 1024, 3))\n", " for i, v in enumerate(np.linspace(0, 1, 1024)):\n", " img[:, i] = gradient(v)\n", "\n", " im = ax.imshow(img, aspect='auto')\n", " im.set_extent([0, 1, 0, 1])\n", " ax.yaxis.set_visible(False)\n", "\n", " pos = list(ax.get_position().bounds)\n", " x_text = pos[0] - 0.25\n", " y_text = pos[1] + pos[3]/2.\n", " fig.text(x_text, y_text, name, va='center', ha='left', fontsize=10)\n", "\n", " fig.savefig('my-gradients.pdf')" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "def toname(g):\n", " return g.__name__.replace('gradient_', '').replace('_', '-').upper()\n", " \n", "gradients = (gradient_rgb_bw, gradient_rgb_gbr, gradient_rgb_gbr_full, gradient_rgb_wb_custom,\n", " gradient_hsv_bw, gradient_hsv_gbr, gradient_hsv_unknown, gradient_hsv_custom)\n", "\n", "plot_color_gradients(gradients, [toname(g) for g in gradients])" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.3" } }, "nbformat": 4, "nbformat_minor": 4 }