{
"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
}