Created
December 4, 2019 07:11
-
-
Save cocomoff/3c4b6f8b941ff8b08f6527c08378f391 to your computer and use it in GitHub Desktop.
example of module
This file contains 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
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### モジュール定義" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"module DiscreteFrechet\n", | |
"\n", | |
"using Plots\n", | |
"\n", | |
"struct Point\n", | |
" x::Float16\n", | |
" y::Float16\n", | |
"end\n", | |
"export Point\n", | |
"\n", | |
"const Curve = Array{Point, 1}\n", | |
"export Curve\n", | |
"\n", | |
"function Base.show(io::IO, p::Point)\n", | |
" println(io, \"($(p.x), $(p.y))\")\n", | |
"end\n", | |
"\n", | |
"function Base.show(io::IO, curve::Curve)\n", | |
" for (ip, p) in enumerate(curve)\n", | |
" print(io, \"($(p.x), $(p.y))\")\n", | |
" ip < length(curve) && print(\"--\")\n", | |
" end\n", | |
" println(io)\n", | |
"end\n", | |
"\n", | |
"dist(p1::Point, p2::Point) = sqrt((p1.x - p2.x) ^ 2 + (p1.y - p2.y) ^ 2)\n", | |
"export dist\n", | |
"\n", | |
"\n", | |
"function plot_curve(lcurve; xlim=[0.0, 2.0], ylim=[0.0, 2.0])\n", | |
" p = plot(size=(500, 500), leg=false, xlims=xlim, ylims=ylim)\n", | |
" \n", | |
" for curve in lcurve\n", | |
" xs = [p.x for p in curve]\n", | |
" ys = [p.y for p in curve]\n", | |
"\n", | |
"\n", | |
" for i in 1:length(curve)-1\n", | |
" pi, pj = curve[i:i+1]\n", | |
" plot!([pi.x, pj.x], [pi.y, pj.y], alpha=0.3, lw=3, color=:black, z=0)\n", | |
" end\n", | |
"\n", | |
" plot!(xs, ys, seriestype=:scatter, color=:red, z=1)\n", | |
" end\n", | |
" \n", | |
" p\n", | |
"end\n", | |
"export plot_curve\n", | |
"\n", | |
"function plot_curve_with_alignment(c1, c2; xlim=[0.0, 2.0], ylim=[0.0, 2.0])\n", | |
" p = plot(size=(500, 500), leg=false, xlims=xlim, ylims=ylim)\n", | |
" \n", | |
" for curve in [c1, c2]\n", | |
" xs = [p.x for p in curve]\n", | |
" ys = [p.y for p in curve]\n", | |
"\n", | |
"\n", | |
" for i in 1:length(curve)-1\n", | |
" pi, pj = curve[i:i+1]\n", | |
" plot!([pi.x, pj.x], [pi.y, pj.y], alpha=0.3, lw=3, color=:black, z=0)\n", | |
" end\n", | |
"\n", | |
" plot!(xs, ys, seriestype=:scatter, color=:red, z=1)\n", | |
" end\n", | |
" \n", | |
" d, assign = dF(c1, c2)\n", | |
" println(assign)\n", | |
" \n", | |
" for (i, j) in assign\n", | |
" pi = c1[i]\n", | |
" pj = c2[j]\n", | |
" println(pi, \":\", pj)\n", | |
" plot!([pi.x, pj.x], [pi.y, pj.y], alpha=0.3, lw=1, color=:black, z=0)\n", | |
" end\n", | |
" \n", | |
" p\n", | |
"end\n", | |
"export plot_curve_with_alignment\n", | |
"\n", | |
"function dF(P, Q)\n", | |
" D = zeros(length(P), length(Q))\n", | |
" D .= -1\n", | |
" \n", | |
" # (1, 1)\n", | |
" D[1, 1] = dist(P[1], Q[1])\n", | |
" \n", | |
" # 1-column\n", | |
" for i in 2:length(P)\n", | |
" D[i, 1] = max(D[i - 1, 1], dist(P[i], Q[1])) \n", | |
" end\n", | |
" \n", | |
" # 1-row\n", | |
" for j in 2:length(Q)\n", | |
" D[1, j] = max(D[1, j - 1], dist(P[1], Q[j]))\n", | |
" end\n", | |
" \n", | |
" # (i, j)\n", | |
" for i in 2:length(P), j in 2:length(Q)\n", | |
" D[i, j] = max(\n", | |
" min(D[i - 1, j], D[i - 1, j - 1], D[i, j - 1]),\n", | |
" dist(P[i], Q[j])\n", | |
" )\n", | |
" end\n", | |
" \n", | |
" # backtracking\n", | |
" list = Tuple{Int, Int}[(length(P), length(Q))]\n", | |
" while true\n", | |
" cur = list[end]\n", | |
" up = (cur[1], cur[2] - 1)\n", | |
" left = (cur[1] - 1, cur[2])\n", | |
" upleft = (cur[1] - 1, cur[2] - 1) \n", | |
" selected = nothing\n", | |
" selected_value = Inf\n", | |
" for p in [up, left, upleft]\n", | |
" if 1 <= p[1] <= length(P) && 1 <= p[2] <= length(Q)\n", | |
" if D[p[1], p[2]] < selected_value\n", | |
" selected_value = D[p[1], p[2]]\n", | |
" selected = p\n", | |
" end\n", | |
" end\n", | |
" end\n", | |
" push!(list, selected)\n", | |
" selected == (1, 1) && break\n", | |
" end\n", | |
"\n", | |
" # display(D)\n", | |
" D[length(P), length(Q)], list\n", | |
"end\n", | |
"export dF\n", | |
"\n", | |
"\n", | |
"end\n", | |
"\n", | |
"using Main.DiscreteFrechet" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"(0.5, 1.5)--(0.7, 1.5)--(1.0, 1.8)\n", | |
"\n", | |
"1.0\n", | |
"1.414\n" | |
] | |
} | |
], | |
"source": [ | |
"p1 = Point(0.5, 1.5)\n", | |
"p2 = Point(0.7, 1.5)\n", | |
"p3 = Point(1.0, 1.8)\n", | |
"curve = [p1, p2, p3]\n", | |
"curve2 = [Point(0.3, 1.2), Point(0.5, 1.0), Point(0.9, 1.1), Point(1.1, 1.5)]\n", | |
"println(curve)\n", | |
"\n", | |
"p1 = Point(0.0, 0.0)\n", | |
"p2 = Point(0.0, 1.0)\n", | |
"p3 = Point(1.0, 1.0)\n", | |
"println(dist(p1, p2))\n", | |
"println(dist(p1, p3))" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 9, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/svg+xml": [ | |
"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n", | |
"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"500\" height=\"500\" viewBox=\"0 0 2000 2000\">\n", | |
"<defs>\n", | |
" <clipPath id=\"clip9100\">\n", | |
" <rect x=\"0\" y=\"0\" width=\"2000\" height=\"2000\"/>\n", | |
" </clipPath>\n", | |
"</defs>\n", | |
"<path clip-path=\"url(#clip9100)\" d=\"\n", | |
"M0 2000 L2000 2000 L2000 0 L0 0 Z\n", | |
" \" fill=\"#ffffff\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n", | |
"<defs>\n", | |
" <clipPath id=\"clip9101\">\n", | |
" <rect x=\"400\" y=\"200\" width=\"1401\" height=\"1401\"/>\n", | |
" </clipPath>\n", | |
"</defs>\n", | |
"<path clip-path=\"url(#clip9100)\" d=\"\n", | |
"M149.898 1866.71 L1952.76 1866.71 L1952.76 47.2441 L149.898 47.2441 Z\n", | |
" \" fill=\"#ffffff\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n", | |
"<defs>\n", | |
" <clipPath id=\"clip9102\">\n", | |
" <rect x=\"149\" y=\"47\" width=\"1804\" height=\"1820\"/>\n", | |
" </clipPath>\n", | |
"</defs>\n", | |
"<polyline clip-path=\"url(#clip9102)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n", | |
" 200.922,1866.71 200.922,47.2441 \n", | |
" \"/>\n", | |
"<polyline clip-path=\"url(#clip9102)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n", | |
" 626.125,1866.71 626.125,47.2441 \n", | |
" \"/>\n", | |
"<polyline clip-path=\"url(#clip9102)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n", | |
" 1051.33,1866.71 1051.33,47.2441 \n", | |
" \"/>\n", | |
"<polyline clip-path=\"url(#clip9102)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n", | |
" 1476.53,1866.71 1476.53,47.2441 \n", | |
" \"/>\n", | |
"<polyline clip-path=\"url(#clip9102)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n", | |
" 1901.73,1866.71 1901.73,47.2441 \n", | |
" \"/>\n", | |
"<polyline clip-path=\"url(#clip9102)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n", | |
" 149.898,1815.21 1952.76,1815.21 \n", | |
" \"/>\n", | |
"<polyline clip-path=\"url(#clip9102)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n", | |
" 149.898,1386.1 1952.76,1386.1 \n", | |
" \"/>\n", | |
"<polyline clip-path=\"url(#clip9102)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n", | |
" 149.898,956.976 1952.76,956.976 \n", | |
" \"/>\n", | |
"<polyline clip-path=\"url(#clip9102)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n", | |
" 149.898,527.857 1952.76,527.857 \n", | |
" \"/>\n", | |
"<polyline clip-path=\"url(#clip9102)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n", | |
" 149.898,98.7384 1952.76,98.7384 \n", | |
" \"/>\n", | |
"<polyline clip-path=\"url(#clip9100)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n", | |
" 149.898,1866.71 1952.76,1866.71 \n", | |
" \"/>\n", | |
"<polyline clip-path=\"url(#clip9100)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n", | |
" 149.898,1866.71 149.898,47.2441 \n", | |
" \"/>\n", | |
"<polyline clip-path=\"url(#clip9100)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n", | |
" 200.922,1866.71 200.922,1839.42 \n", | |
" \"/>\n", | |
"<polyline clip-path=\"url(#clip9100)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n", | |
" 626.125,1866.71 626.125,1839.42 \n", | |
" \"/>\n", | |
"<polyline clip-path=\"url(#clip9100)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n", | |
" 1051.33,1866.71 1051.33,1839.42 \n", | |
" \"/>\n", | |
"<polyline clip-path=\"url(#clip9100)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n", | |
" 1476.53,1866.71 1476.53,1839.42 \n", | |
" \"/>\n", | |
"<polyline clip-path=\"url(#clip9100)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n", | |
" 1901.73,1866.71 1901.73,1839.42 \n", | |
" \"/>\n", | |
"<polyline clip-path=\"url(#clip9100)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n", | |
" 149.898,1815.21 176.941,1815.21 \n", | |
" \"/>\n", | |
"<polyline clip-path=\"url(#clip9100)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n", | |
" 149.898,1386.1 176.941,1386.1 \n", | |
" \"/>\n", | |
"<polyline clip-path=\"url(#clip9100)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n", | |
" 149.898,956.976 176.941,956.976 \n", | |
" \"/>\n", | |
"<polyline clip-path=\"url(#clip9100)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n", | |
" 149.898,527.857 176.941,527.857 \n", | |
" \"/>\n", | |
"<polyline clip-path=\"url(#clip9100)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n", | |
" 149.898,98.7384 176.941,98.7384 \n", | |
" \"/>\n", | |
"<g clip-path=\"url(#clip9100)\">\n", | |
"<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:middle;\" transform=\"rotate(0, 200.922, 1918.71)\" x=\"200.922\" y=\"1918.71\">0.0</text>\n", | |
"</g>\n", | |
"<g clip-path=\"url(#clip9100)\">\n", | |
"<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:middle;\" transform=\"rotate(0, 626.125, 1918.71)\" x=\"626.125\" y=\"1918.71\">0.5</text>\n", | |
"</g>\n", | |
"<g clip-path=\"url(#clip9100)\">\n", | |
"<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:middle;\" transform=\"rotate(0, 1051.33, 1918.71)\" x=\"1051.33\" y=\"1918.71\">1.0</text>\n", | |
"</g>\n", | |
"<g clip-path=\"url(#clip9100)\">\n", | |
"<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:middle;\" transform=\"rotate(0, 1476.53, 1918.71)\" x=\"1476.53\" y=\"1918.71\">1.5</text>\n", | |
"</g>\n", | |
"<g clip-path=\"url(#clip9100)\">\n", | |
"<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:middle;\" transform=\"rotate(0, 1901.73, 1918.71)\" x=\"1901.73\" y=\"1918.71\">2.0</text>\n", | |
"</g>\n", | |
"<g clip-path=\"url(#clip9100)\">\n", | |
"<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:end;\" transform=\"rotate(0, 129.898, 1832.71)\" x=\"129.898\" y=\"1832.71\">0.0</text>\n", | |
"</g>\n", | |
"<g clip-path=\"url(#clip9100)\">\n", | |
"<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:end;\" transform=\"rotate(0, 129.898, 1403.6)\" x=\"129.898\" y=\"1403.6\">0.5</text>\n", | |
"</g>\n", | |
"<g clip-path=\"url(#clip9100)\">\n", | |
"<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:end;\" transform=\"rotate(0, 129.898, 974.476)\" x=\"129.898\" y=\"974.476\">1.0</text>\n", | |
"</g>\n", | |
"<g clip-path=\"url(#clip9100)\">\n", | |
"<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:end;\" transform=\"rotate(0, 129.898, 545.357)\" x=\"129.898\" y=\"545.357\">1.5</text>\n", | |
"</g>\n", | |
"<g clip-path=\"url(#clip9100)\">\n", | |
"<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:end;\" transform=\"rotate(0, 129.898, 116.238)\" x=\"129.898\" y=\"116.238\">2.0</text>\n", | |
"</g>\n", | |
"<polyline clip-path=\"url(#clip9102)\" style=\"stroke:#000000; stroke-width:12; stroke-opacity:0.3; fill:none\" points=\"\n", | |
" 626.125,527.857 796.372,527.857 \n", | |
" \"/>\n", | |
"<polyline clip-path=\"url(#clip9102)\" style=\"stroke:#000000; stroke-width:12; stroke-opacity:0.3; fill:none\" points=\"\n", | |
" 796.372,527.857 1051.33,270.554 \n", | |
" \"/>\n", | |
"<circle clip-path=\"url(#clip9102)\" style=\"fill:#000000; stroke:none; fill-opacity:1\" cx=\"626.125\" cy=\"527.857\" r=\"18\"/>\n", | |
"<circle clip-path=\"url(#clip9102)\" style=\"fill:#ff0000; stroke:none; fill-opacity:1\" cx=\"626.125\" cy=\"527.857\" r=\"14\"/>\n", | |
"<circle clip-path=\"url(#clip9102)\" style=\"fill:#000000; stroke:none; fill-opacity:1\" cx=\"796.372\" cy=\"527.857\" r=\"18\"/>\n", | |
"<circle clip-path=\"url(#clip9102)\" style=\"fill:#ff0000; stroke:none; fill-opacity:1\" cx=\"796.372\" cy=\"527.857\" r=\"14\"/>\n", | |
"<circle clip-path=\"url(#clip9102)\" style=\"fill:#000000; stroke:none; fill-opacity:1\" cx=\"1051.33\" cy=\"270.554\" r=\"18\"/>\n", | |
"<circle clip-path=\"url(#clip9102)\" style=\"fill:#ff0000; stroke:none; fill-opacity:1\" cx=\"1051.33\" cy=\"270.554\" r=\"14\"/>\n", | |
"<polyline clip-path=\"url(#clip9102)\" style=\"stroke:#000000; stroke-width:12; stroke-opacity:0.3; fill:none\" points=\"\n", | |
" 456.085,785.161 626.125,956.976 \n", | |
" \"/>\n", | |
"<polyline clip-path=\"url(#clip9102)\" style=\"stroke:#000000; stroke-width:12; stroke-opacity:0.3; fill:none\" points=\"\n", | |
" 626.125,956.976 966.203,871.488 \n", | |
" \"/>\n", | |
"<polyline clip-path=\"url(#clip9102)\" style=\"stroke:#000000; stroke-width:12; stroke-opacity:0.3; fill:none\" points=\"\n", | |
" 966.203,871.488 1136.04,527.857 \n", | |
" \"/>\n", | |
"<circle clip-path=\"url(#clip9102)\" style=\"fill:#000000; stroke:none; fill-opacity:1\" cx=\"456.085\" cy=\"785.161\" r=\"18\"/>\n", | |
"<circle clip-path=\"url(#clip9102)\" style=\"fill:#ff0000; stroke:none; fill-opacity:1\" cx=\"456.085\" cy=\"785.161\" r=\"14\"/>\n", | |
"<circle clip-path=\"url(#clip9102)\" style=\"fill:#000000; stroke:none; fill-opacity:1\" cx=\"626.125\" cy=\"956.976\" r=\"18\"/>\n", | |
"<circle clip-path=\"url(#clip9102)\" style=\"fill:#ff0000; stroke:none; fill-opacity:1\" cx=\"626.125\" cy=\"956.976\" r=\"14\"/>\n", | |
"<circle clip-path=\"url(#clip9102)\" style=\"fill:#000000; stroke:none; fill-opacity:1\" cx=\"966.203\" cy=\"871.488\" r=\"18\"/>\n", | |
"<circle clip-path=\"url(#clip9102)\" style=\"fill:#ff0000; stroke:none; fill-opacity:1\" cx=\"966.203\" cy=\"871.488\" r=\"14\"/>\n", | |
"<circle clip-path=\"url(#clip9102)\" style=\"fill:#000000; stroke:none; fill-opacity:1\" cx=\"1136.04\" cy=\"527.857\" r=\"18\"/>\n", | |
"<circle clip-path=\"url(#clip9102)\" style=\"fill:#ff0000; stroke:none; fill-opacity:1\" cx=\"1136.04\" cy=\"527.857\" r=\"14\"/>\n", | |
"</svg>\n" | |
] | |
}, | |
"execution_count": 9, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"fig = plot_curve([curve, curve2])\n", | |
"fig" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Frechet 例題" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"(2.0, Tuple{Int64,Int64}[(3, 3), (2, 2), (2, 1), (1, 1)])\n" | |
] | |
} | |
], | |
"source": [ | |
"P = [Point(1, 1), Point(2, 1), Point(2, 2)]\n", | |
"Q = [Point(2, 2), Point(0, 1), Point(2, 4)]\n", | |
"println(dF(P, Q))" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"(0.0, Tuple{Int64,Int64}[(3, 3), (2, 2), (1, 1)])\n" | |
] | |
} | |
], | |
"source": [ | |
"P = [Point(1, 1), Point(2, 1), Point(2, 2)]\n", | |
"Q = [Point(1, 1), Point(2, 1), Point(2, 2)]\n", | |
"println(dF(P, Q))" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### alignment" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 10, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Tuple{Int64,Int64}[(3, 4), (2, 4), (2, 3), (1, 2), (1, 1)]\n", | |
"(1.0, 1.8)\n", | |
":(1.1, 1.5)\n", | |
"\n", | |
"(0.7, 1.5)\n", | |
":(1.1, 1.5)\n", | |
"\n", | |
"(0.7, 1.5)\n", | |
":(0.9, 1.1)\n", | |
"\n", | |
"(0.5, 1.5)\n", | |
":(0.5, 1.0)\n", | |
"\n", | |
"(0.5, 1.5)\n", | |
":(0.3, 1.2)\n", | |
"\n" | |
] | |
}, | |
{ | |
"data": { | |
"image/svg+xml": [ | |
"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n", | |
"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"500\" height=\"500\" viewBox=\"0 0 2000 2000\">\n", | |
"<defs>\n", | |
" <clipPath id=\"clip9500\">\n", | |
" <rect x=\"0\" y=\"0\" width=\"2000\" height=\"2000\"/>\n", | |
" </clipPath>\n", | |
"</defs>\n", | |
"<path clip-path=\"url(#clip9500)\" d=\"\n", | |
"M0 2000 L2000 2000 L2000 0 L0 0 Z\n", | |
" \" fill=\"#ffffff\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n", | |
"<defs>\n", | |
" <clipPath id=\"clip9501\">\n", | |
" <rect x=\"400\" y=\"200\" width=\"1401\" height=\"1401\"/>\n", | |
" </clipPath>\n", | |
"</defs>\n", | |
"<path clip-path=\"url(#clip9500)\" d=\"\n", | |
"M149.898 1866.71 L1952.76 1866.71 L1952.76 47.2441 L149.898 47.2441 Z\n", | |
" \" fill=\"#ffffff\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n", | |
"<defs>\n", | |
" <clipPath id=\"clip9502\">\n", | |
" <rect x=\"149\" y=\"47\" width=\"1804\" height=\"1820\"/>\n", | |
" </clipPath>\n", | |
"</defs>\n", | |
"<polyline clip-path=\"url(#clip9502)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n", | |
" 200.922,1866.71 200.922,47.2441 \n", | |
" \"/>\n", | |
"<polyline clip-path=\"url(#clip9502)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n", | |
" 626.125,1866.71 626.125,47.2441 \n", | |
" \"/>\n", | |
"<polyline clip-path=\"url(#clip9502)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n", | |
" 1051.33,1866.71 1051.33,47.2441 \n", | |
" \"/>\n", | |
"<polyline clip-path=\"url(#clip9502)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n", | |
" 1476.53,1866.71 1476.53,47.2441 \n", | |
" \"/>\n", | |
"<polyline clip-path=\"url(#clip9502)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n", | |
" 1901.73,1866.71 1901.73,47.2441 \n", | |
" \"/>\n", | |
"<polyline clip-path=\"url(#clip9502)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n", | |
" 149.898,1815.21 1952.76,1815.21 \n", | |
" \"/>\n", | |
"<polyline clip-path=\"url(#clip9502)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n", | |
" 149.898,1386.1 1952.76,1386.1 \n", | |
" \"/>\n", | |
"<polyline clip-path=\"url(#clip9502)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n", | |
" 149.898,956.976 1952.76,956.976 \n", | |
" \"/>\n", | |
"<polyline clip-path=\"url(#clip9502)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n", | |
" 149.898,527.857 1952.76,527.857 \n", | |
" \"/>\n", | |
"<polyline clip-path=\"url(#clip9502)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n", | |
" 149.898,98.7384 1952.76,98.7384 \n", | |
" \"/>\n", | |
"<polyline clip-path=\"url(#clip9500)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n", | |
" 149.898,1866.71 1952.76,1866.71 \n", | |
" \"/>\n", | |
"<polyline clip-path=\"url(#clip9500)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n", | |
" 149.898,1866.71 149.898,47.2441 \n", | |
" \"/>\n", | |
"<polyline clip-path=\"url(#clip9500)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n", | |
" 200.922,1866.71 200.922,1839.42 \n", | |
" \"/>\n", | |
"<polyline clip-path=\"url(#clip9500)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n", | |
" 626.125,1866.71 626.125,1839.42 \n", | |
" \"/>\n", | |
"<polyline clip-path=\"url(#clip9500)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n", | |
" 1051.33,1866.71 1051.33,1839.42 \n", | |
" \"/>\n", | |
"<polyline clip-path=\"url(#clip9500)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n", | |
" 1476.53,1866.71 1476.53,1839.42 \n", | |
" \"/>\n", | |
"<polyline clip-path=\"url(#clip9500)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n", | |
" 1901.73,1866.71 1901.73,1839.42 \n", | |
" \"/>\n", | |
"<polyline clip-path=\"url(#clip9500)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n", | |
" 149.898,1815.21 176.941,1815.21 \n", | |
" \"/>\n", | |
"<polyline clip-path=\"url(#clip9500)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n", | |
" 149.898,1386.1 176.941,1386.1 \n", | |
" \"/>\n", | |
"<polyline clip-path=\"url(#clip9500)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n", | |
" 149.898,956.976 176.941,956.976 \n", | |
" \"/>\n", | |
"<polyline clip-path=\"url(#clip9500)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n", | |
" 149.898,527.857 176.941,527.857 \n", | |
" \"/>\n", | |
"<polyline clip-path=\"url(#clip9500)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n", | |
" 149.898,98.7384 176.941,98.7384 \n", | |
" \"/>\n", | |
"<g clip-path=\"url(#clip9500)\">\n", | |
"<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:middle;\" transform=\"rotate(0, 200.922, 1918.71)\" x=\"200.922\" y=\"1918.71\">0.0</text>\n", | |
"</g>\n", | |
"<g clip-path=\"url(#clip9500)\">\n", | |
"<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:middle;\" transform=\"rotate(0, 626.125, 1918.71)\" x=\"626.125\" y=\"1918.71\">0.5</text>\n", | |
"</g>\n", | |
"<g clip-path=\"url(#clip9500)\">\n", | |
"<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:middle;\" transform=\"rotate(0, 1051.33, 1918.71)\" x=\"1051.33\" y=\"1918.71\">1.0</text>\n", | |
"</g>\n", | |
"<g clip-path=\"url(#clip9500)\">\n", | |
"<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:middle;\" transform=\"rotate(0, 1476.53, 1918.71)\" x=\"1476.53\" y=\"1918.71\">1.5</text>\n", | |
"</g>\n", | |
"<g clip-path=\"url(#clip9500)\">\n", | |
"<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:middle;\" transform=\"rotate(0, 1901.73, 1918.71)\" x=\"1901.73\" y=\"1918.71\">2.0</text>\n", | |
"</g>\n", | |
"<g clip-path=\"url(#clip9500)\">\n", | |
"<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:end;\" transform=\"rotate(0, 129.898, 1832.71)\" x=\"129.898\" y=\"1832.71\">0.0</text>\n", | |
"</g>\n", | |
"<g clip-path=\"url(#clip9500)\">\n", | |
"<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:end;\" transform=\"rotate(0, 129.898, 1403.6)\" x=\"129.898\" y=\"1403.6\">0.5</text>\n", | |
"</g>\n", | |
"<g clip-path=\"url(#clip9500)\">\n", | |
"<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:end;\" transform=\"rotate(0, 129.898, 974.476)\" x=\"129.898\" y=\"974.476\">1.0</text>\n", | |
"</g>\n", | |
"<g clip-path=\"url(#clip9500)\">\n", | |
"<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:end;\" transform=\"rotate(0, 129.898, 545.357)\" x=\"129.898\" y=\"545.357\">1.5</text>\n", | |
"</g>\n", | |
"<g clip-path=\"url(#clip9500)\">\n", | |
"<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:48px; text-anchor:end;\" transform=\"rotate(0, 129.898, 116.238)\" x=\"129.898\" y=\"116.238\">2.0</text>\n", | |
"</g>\n", | |
"<polyline clip-path=\"url(#clip9502)\" style=\"stroke:#000000; stroke-width:12; stroke-opacity:0.3; fill:none\" points=\"\n", | |
" 626.125,527.857 796.372,527.857 \n", | |
" \"/>\n", | |
"<polyline clip-path=\"url(#clip9502)\" style=\"stroke:#000000; stroke-width:12; stroke-opacity:0.3; fill:none\" points=\"\n", | |
" 796.372,527.857 1051.33,270.554 \n", | |
" \"/>\n", | |
"<circle clip-path=\"url(#clip9502)\" style=\"fill:#000000; stroke:none; fill-opacity:1\" cx=\"626.125\" cy=\"527.857\" r=\"18\"/>\n", | |
"<circle clip-path=\"url(#clip9502)\" style=\"fill:#ff0000; stroke:none; fill-opacity:1\" cx=\"626.125\" cy=\"527.857\" r=\"14\"/>\n", | |
"<circle clip-path=\"url(#clip9502)\" style=\"fill:#000000; stroke:none; fill-opacity:1\" cx=\"796.372\" cy=\"527.857\" r=\"18\"/>\n", | |
"<circle clip-path=\"url(#clip9502)\" style=\"fill:#ff0000; stroke:none; fill-opacity:1\" cx=\"796.372\" cy=\"527.857\" r=\"14\"/>\n", | |
"<circle clip-path=\"url(#clip9502)\" style=\"fill:#000000; stroke:none; fill-opacity:1\" cx=\"1051.33\" cy=\"270.554\" r=\"18\"/>\n", | |
"<circle clip-path=\"url(#clip9502)\" style=\"fill:#ff0000; stroke:none; fill-opacity:1\" cx=\"1051.33\" cy=\"270.554\" r=\"14\"/>\n", | |
"<polyline clip-path=\"url(#clip9502)\" style=\"stroke:#000000; stroke-width:12; stroke-opacity:0.3; fill:none\" points=\"\n", | |
" 456.085,785.161 626.125,956.976 \n", | |
" \"/>\n", | |
"<polyline clip-path=\"url(#clip9502)\" style=\"stroke:#000000; stroke-width:12; stroke-opacity:0.3; fill:none\" points=\"\n", | |
" 626.125,956.976 966.203,871.488 \n", | |
" \"/>\n", | |
"<polyline clip-path=\"url(#clip9502)\" style=\"stroke:#000000; stroke-width:12; stroke-opacity:0.3; fill:none\" points=\"\n", | |
" 966.203,871.488 1136.04,527.857 \n", | |
" \"/>\n", | |
"<circle clip-path=\"url(#clip9502)\" style=\"fill:#000000; stroke:none; fill-opacity:1\" cx=\"456.085\" cy=\"785.161\" r=\"18\"/>\n", | |
"<circle clip-path=\"url(#clip9502)\" style=\"fill:#ff0000; stroke:none; fill-opacity:1\" cx=\"456.085\" cy=\"785.161\" r=\"14\"/>\n", | |
"<circle clip-path=\"url(#clip9502)\" style=\"fill:#000000; stroke:none; fill-opacity:1\" cx=\"626.125\" cy=\"956.976\" r=\"18\"/>\n", | |
"<circle clip-path=\"url(#clip9502)\" style=\"fill:#ff0000; stroke:none; fill-opacity:1\" cx=\"626.125\" cy=\"956.976\" r=\"14\"/>\n", | |
"<circle clip-path=\"url(#clip9502)\" style=\"fill:#000000; stroke:none; fill-opacity:1\" cx=\"966.203\" cy=\"871.488\" r=\"18\"/>\n", | |
"<circle clip-path=\"url(#clip9502)\" style=\"fill:#ff0000; stroke:none; fill-opacity:1\" cx=\"966.203\" cy=\"871.488\" r=\"14\"/>\n", | |
"<circle clip-path=\"url(#clip9502)\" style=\"fill:#000000; stroke:none; fill-opacity:1\" cx=\"1136.04\" cy=\"527.857\" r=\"18\"/>\n", | |
"<circle clip-path=\"url(#clip9502)\" style=\"fill:#ff0000; stroke:none; fill-opacity:1\" cx=\"1136.04\" cy=\"527.857\" r=\"14\"/>\n", | |
"<polyline clip-path=\"url(#clip9502)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:0.3; fill:none\" points=\"\n", | |
" 1051.33,270.554 1136.04,527.857 \n", | |
" \"/>\n", | |
"<polyline clip-path=\"url(#clip9502)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:0.3; fill:none\" points=\"\n", | |
" 796.372,527.857 1136.04,527.857 \n", | |
" \"/>\n", | |
"<polyline clip-path=\"url(#clip9502)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:0.3; fill:none\" points=\"\n", | |
" 796.372,527.857 966.203,871.488 \n", | |
" \"/>\n", | |
"<polyline clip-path=\"url(#clip9502)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:0.3; fill:none\" points=\"\n", | |
" 626.125,527.857 626.125,956.976 \n", | |
" \"/>\n", | |
"<polyline clip-path=\"url(#clip9502)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:0.3; fill:none\" points=\"\n", | |
" 626.125,527.857 456.085,785.161 \n", | |
" \"/>\n", | |
"</svg>\n" | |
] | |
}, | |
"execution_count": 10, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"plot_curve_with_alignment(curve, curve2)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Julia 1.1.0", | |
"language": "julia", | |
"name": "julia-1.1" | |
}, | |
"language_info": { | |
"file_extension": ".jl", | |
"mimetype": "application/julia", | |
"name": "julia", | |
"version": "1.1.0" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment