{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "using Plots\n", "pyplot(\n", " legend=false,\n", "    xlims=(-1.0,1.0), ylims=(-1.0,1.0), zlims=(-1.0,1.0),\n", "    xlab=\"x\", ylab=\"z\", zlab=\"y\",\n", "    size=(500,500), ticks=nothing\n", ")\n", "\n", "function get_axis(θ)\n", "    rx = -1 + cos(θ) - sin(θ)\n", "    ry = -1 - cos(θ) + sin(θ)\n", "    rz =  1 - cos(θ) - sin(θ)\n", " \n", " r = √(rx^2 + ry^2 + rz^2)\n", " \n", "    rx/r, ry/r, rz/r\n", "end\n", "\n", "function plot_1_4th_axes!(p)\n", "    for θ = 0:π/16:π/2\n", "        x, y, z = get_axis(θ)\n", "        plot!(p, [0.0,x], [0.0,z], [0.0,-y],\n", "              color=:red, lw=3)\n", "    end\n", "end\n", "\n", "function plot_axes(cmrx, cmry)\n", "    p = plot(θ->cos(θ), θ->sin(θ), θ->0, 0, 2π, color=:black, line=:dot)\n", "    plot!(p, θ->0, θ->cos(θ), θ->sin(θ), 0, 2π, color=:black, line=:dot)\n", "   plot!(p, θ->cos(θ), θ->0, θ->sin(θ), 0, 2π, color=:black, line=:dot)\n", " \n", "    for θ = 0:π/16:2π\n", "        x, y, z = get_axis(θ)\n", "        (clr,wdt) = ifelse(θ<π/2, (:red,3), (:blue,1))\n", "        plot!(p, [0.0,x], [0.0,z], [0.0,-y],\n", "              color=clr, lw=wdt, camera=(cmrx,cmry))\n", "      θ>π/2 && plot_1_4th_axes!(p)\n", " end\n", "    p\n", "end\n", "\n", "plot_axes(-45, 30)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "using Plots\n", "pyplot(\n", " xlims=(0.0,2π),ylims=(0.0,3π/2),\n", "    xlab=\"θ\",\n", "    ticks=-π:π/4:2π,\n", "    legend=false, size=(600,500)\n", ")\n", "\n", "function Dx(ys, dx)\n", "    len = length(ys)\n", "   (getindex(ys, 2:len).-getindex(ys, 1:len-1))/dx\n", "end\n", "\n", "function plot_1_4th_bold(xs, ys, y_label, y_limit)\n", "    len = length(xs)\n", "    p = plot([0,2π], [0,0], color=:black)\n", "    plot!(p, getindex(xs, 1:len÷4), getindex(ys, 1:len÷4), lw=3, ylab=y_label, ylims=y_limit, color=:red)\n", "    plot!(p, getindex(xs, len÷4:len), getindex(ys, len÷4:len), lw=1, color=:blue)\n", "    p\n", "end\n", "\n", "f(θ) = 2acos((1+cos(θ)+sin(θ))/(2*√2))\n", "dθ = 0.01\n", "θs = [θ for θ in 0:dθ:2π]\n", "φs = [f(θ) for θ in θs]\n", "\n", "plot(plot_1_4th_bold(θs, φs, \"rotation angle\", (0,3π/2)),\n", " plot_1_4th_bold(getindex(θs, 1:length(θs)-1), Dx(φs, dθ), \"angular velocity\", (-3π/4,3π/4)),\n", "     layout=(2,1))" ] } ], "metadata": { "kernelspec": { "display_name": "Julia 0.6.2", "language": "julia", "name": "julia-0.6" }, "language_info": { "file_extension": ".jl", "mimetype": "application/julia", "name": "julia", "version": "0.6.2" } }, "nbformat": 4, "nbformat_minor": 2 }