Compare commits

...

11 commits

Author SHA1 Message Date
Oliver Gaskell
8c44ac56e6
Merge branch 'main' into website 2025-11-02 15:54:17 +00:00
Oliver Gaskell
89ca5851b8
engine: change to mm 2025-11-02 15:52:35 +00:00
Elysia
dcd221c096 website: logo 2025-11-02 15:52:33 +00:00
Oliver Gaskell
7109190f80
engine: format change 2025-11-02 15:49:07 +00:00
Oliver Gaskell
1b280827ea
engine_test: improve _greggs test 2025-11-02 15:47:47 +00:00
Oliver Gaskell
2edce7c73a
engine: trilat improvements 2025-11-02 15:47:33 +00:00
Elysia
dd038072c9 website: style 2025-11-02 15:34:55 +00:00
Elysia
fd2faa3661 website: logo 2025-11-02 15:34:35 +00:00
Oliver Gaskell
913b558ebf
website: bold title 2025-11-02 15:00:39 +00:00
Oliver Gaskell
bafd1cb196
Merge branch 'website_frontend' into website 2025-11-02 14:52:20 +00:00
Elysia
4b2dca7bb3 website: sizes 2025-11-02 14:51:07 +00:00
8 changed files with 90 additions and 39 deletions

View file

@ -6,7 +6,7 @@ import overpy
import numpy as np import numpy as np
import pandas as pd import pandas as pd
import scipy import scipy
# import random import random
from pathlib import Path from pathlib import Path
@ -19,12 +19,12 @@ BRANDS: dict[str, str] = {
CACHE_FOLDER = Path(".cache") CACHE_FOLDER = Path(".cache")
LOCS_COUNT = 5 LOCS_COUNT = 5
DISTS_COUNT = 5 DISTS_COUNT = 2
FORMAT_FACTOR = 1e6 # μm FORMAT_FACTOR = 1e3 # μm
FIRST_SEP = ':' FIRST_SEP = ':'
OTHER_SEP = ',' OTHER_SEP = ','
LOC_SEP = ';' LOC_SEP = '; '
cached_dists = {} cached_dists = {}
cached_series = {} cached_series = {}
@ -137,17 +137,25 @@ def trilaterate(stations: list[StationT], disp: bool = False) -> tuple[float, fl
Each station is of the format ((lat, lon), distance). Each station is of the format ((lat, lon), distance).
""" """
res = scipy.optimize.minimize( best_err = None
lambda pos: trilat_error(stations, pos), best = (0., 0.)
# stations[0][0],
(0.0, 0.0),
method='Nelder-Mead',
)
if not res.success: for pos, _ in stations:
print("WARNING: Optimisation failed.") res = scipy.optimize.minimize(
lambda pos: trilat_error(stations, pos),
# stations[0][0],
pos,
method='Nelder-Mead',
)
return res.x if not res.success:
continue
if best_err is None or res.fun < best_err:
best = res.x
best_err = res.fun
return best
def encode_greggs(loc: int) -> list[float]: def encode_greggs(loc: int) -> list[float]:

View file

@ -1,6 +1,6 @@
#!/usr/bin/env python #!/usr/bin/env python
from engine import encode_greggs, decode_greggs, encode, decode, format_location, parse_location, spherical_dist, fetch_data from engine import encode_greggs, decode_greggs, encode, decode, format_location, parse_location, spherical_dist, fetch_data, format_dist, parse_dist
from tqdm import tqdm from tqdm import tqdm
import numpy as np import numpy as np
import time import time
@ -62,8 +62,11 @@ def test_encode_decode_greggs():
encoded = encode_greggs(i) encoded = encode_greggs(i)
# tqdm.write(f"Encoding took {time.monotonic() - t:.3f}s") # tqdm.write(f"Encoding took {time.monotonic() - t:.3f}s")
stringified = ",".join(map(format_dist, encoded))
parsed = [parse_dist(s.strip()) for s in stringified.split(",")]
# t = time.monotonic() # t = time.monotonic()
decoded = decode_greggs(encoded) decoded = decode_greggs(parsed)
# tqdm.write(f"Decoding took {time.monotonic() - t:.3f}s") # tqdm.write(f"Decoding took {time.monotonic() - t:.3f}s")
if i != decoded: if i != decoded:

View file

@ -1,18 +1,27 @@
@font-face { @font-face {
font-family: 'CynthoBold'; font-family: 'CynthoBold';
src: src:
url('/static/font/CynthoNextBold.otf') format('opentype'); url('/static/font/CynthoNextBold.otf') format('opentype');
font-weight: bold;
font-style: normal;
}
@font-face {
font-family: 'CynthoRegular';
src:
url('/static/font/CynthoNextRegular.otf') format('opentype');
font-weight: normal; font-weight: normal;
font-style: normal; font-style: normal;
} }
@font-face { @font-face {
font-family: 'CynthoRegular'; font-family: 'CynthoExtraLight';
src: src:
url('/static/font/CynthoNextRegular.otf') format('opentype'); url('/static/font/CynthoNextExtraLight.otf') format('opentype');
font-weight: normal; font-weight: 900;
font-style: normal; font-style: normal;
} }
@ -20,7 +29,7 @@
body { body {
background-color:rgba(250, 184, 0); background-color:rgba(250, 184, 0);
color: #006cab; color: #006cab;
font-size: 20px; font-size: 25px;
font-family: "CynthoRegular", sans-serif;; font-family: "CynthoRegular", sans-serif;;
margin: 0; margin: 0;
padding: 0; padding: 0;
@ -30,7 +39,7 @@ body {
button { button {
background-color: rgba(0, 108, 171); background-color: rgba(0, 108, 171);
color: rgba(250, 184, 0); color: rgba(250, 184, 0);
font-size: 20px; font-size: 30px;
font-family: "CynthoRegular", sans-serif; font-family: "CynthoRegular", sans-serif;
font-weight: bold; font-weight: bold;
padding: 25px 25px; padding: 25px 25px;
@ -47,11 +56,11 @@ button {
} }
textarea { textarea {
width: 80%; width: 800px;;
height: 300px; height: 300px;
padding: 12px; padding: 12px;
box-sizing: border-box; box-sizing: border-box;
border: 4px solid rgba(0, 108, 171); border: 3px solid rgba(0, 108, 171);
border-radius: 5px; border-radius: 5px;
background-color: rgb(255, 199, 44); background-color: rgb(255, 199, 44);
font-size: 18px; font-size: 18px;
@ -63,11 +72,20 @@ textarea {
.btn-group { .btn-group {
display: flex; /* places buttons side-by-side */ display: flex; /* places buttons side-by-side */
justify-content: center; /* centers them horizontally */ /* aligns vertically */ justify-content: center; /* centers them horizontally */ /* aligns vertically */
gap: 15px; gap: 15px;
margin-top: 10px; margin-top: 0px;
} }
img { img {
align-items: center; display: block;
width: 80%; margin: 0 auto;
align-items: center;
width: 650px;
} }
.container {
display: flex; /* places items in a row */
align-items: center; /* vertically centers image and text */
justify-content: center; /* centers the whole thing horizontally */
gap: 10px; /* space between image and text */
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View file

@ -3,10 +3,10 @@
<html> <html>
<head> <head>
<!-- Link your custom CSS --> <!-- Link your custom CSS -->
<link rel="stylesheet" href="{% static 'css/styles.css' %}"> <link rel="stylesheet" href="{% static 'css/styles.css' %}">
<title>GREGGORDINATES</title> <title>GREGGORDINATES</title>
<!-- Global CSS --> <!-- Global CSS -->
@ -17,10 +17,20 @@
<body> <body>
<br> <br>
<br> <br>
<h1 style="color:#ffffff ; margin-top: 20px; margin-bottom: 10px;
letter-spacing: 1.5px;" > <div class="container">
GREGGordinates <div class="image">
</h1> <img src="{% static 'img/logo_1.png' %}" alt="cute logo" style="width:60px;height:60px;">
</div>
<div class="text">
<h1 style="color:#ffffff; font-size: 60px; margin-top: 20px; margin-bottom: 10px; font-family:CynthoRegular; font-weight: bold;
letter-spacing: 1.5px;" >
GREGGordinates
</h1>
</div>
</div>
<p> "Everything is relative to greggs, and only that is absolute." </p> <p> "Everything is relative to greggs, and only that is absolute." </p>
{% block content %} {% block content %}

View file

@ -35,4 +35,10 @@ document.addEventListener("DOMContentLoaded", function () {
}); });
</script> </script>
<a href="{% url 'decode' %}">
<button>
</button>
</a>
{% endblock %} {% endblock %}

View file

@ -3,7 +3,13 @@
{% block content %} {% block content %}
<div width="100%"> <div width="100%">
<p width="80%" style="border-radius: 10px; border: 1px solid black; background-color: rgba(192, 192, 192, 0.5); max-width: 500px; margin: 0 auto; padding: 20px; word-wrap:break-word;"> {{ result }} </p> <p width="80%" style="border-radius: 10px; border: 3px solid rgba(0, 108, 171); background-color: rgb(255, 199, 44); max-width: 500px; margin: 0 auto; padding: 20px; word-wrap:break-word;"> {{ result }} </p>
</div> </div>
<a href="{% url 'encode' %}">
<button>
</button>
</a>
{% endblock %} {% endblock %}

View file

@ -2,8 +2,8 @@
{% load static %} {% load static %}
{% block content %} {% block content %}
<br><br>
<img src="{% static 'img/drawing.png' %}" alt="Cute map drawing" id="homepageimage"> <img src="{% static 'img/drawing.png' %}" alt="Cute map drawing">
<div class="btn-group"> <div class="btn-group">
<a href="{% url 'encode' %}"> <a href="{% url 'encode' %}">
@ -19,7 +19,7 @@
display: flex; /* places buttons side-by-side */ display: flex; /* places buttons side-by-side */
justify-content: center; /* centers them horizontally */ justify-content: center; /* centers them horizontally */
align-items: center; /* aligns vertically */ align-items: center; /* aligns vertically */
gap: 30px; gap: 40px;
margin-top: 0px; margin-top: 0px;
} }
@ -28,7 +28,7 @@
} }
.btn-group button { .btn-group button {
padding: 40px 40px; padding: 30px 50px;
font-size:25px; font-size:25px;
margin-top: 0px; margin-top: 0px;
} }