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 pandas as pd
import scipy
# import random
import random
from pathlib import Path
@ -19,12 +19,12 @@ BRANDS: dict[str, str] = {
CACHE_FOLDER = Path(".cache")
LOCS_COUNT = 5
DISTS_COUNT = 5
DISTS_COUNT = 2
FORMAT_FACTOR = 1e6 # μm
FORMAT_FACTOR = 1e3 # μm
FIRST_SEP = ':'
OTHER_SEP = ','
LOC_SEP = ';'
LOC_SEP = '; '
cached_dists = {}
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).
"""
res = scipy.optimize.minimize(
lambda pos: trilat_error(stations, pos),
# stations[0][0],
(0.0, 0.0),
method='Nelder-Mead',
)
best_err = None
best = (0., 0.)
if not res.success:
print("WARNING: Optimisation failed.")
for pos, _ in stations:
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]:

View file

@ -1,6 +1,6 @@
#!/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
import numpy as np
import time
@ -62,8 +62,11 @@ def test_encode_decode_greggs():
encoded = encode_greggs(i)
# 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()
decoded = decode_greggs(encoded)
decoded = decode_greggs(parsed)
# tqdm.write(f"Decoding took {time.monotonic() - t:.3f}s")
if i != decoded:

View file

@ -3,7 +3,7 @@
src:
url('/static/font/CynthoNextBold.otf') format('opentype');
font-weight: normal;
font-weight: bold;
font-style: normal;
}
@ -16,11 +16,20 @@
font-style: normal;
}
@font-face {
font-family: 'CynthoExtraLight';
src:
url('/static/font/CynthoNextExtraLight.otf') format('opentype');
font-weight: 900;
font-style: normal;
}
/* This sets the font color for all text */
body {
background-color:rgba(250, 184, 0);
color: #006cab;
font-size: 20px;
font-size: 25px;
font-family: "CynthoRegular", sans-serif;;
margin: 0;
padding: 0;
@ -30,7 +39,7 @@ body {
button {
background-color: rgba(0, 108, 171);
color: rgba(250, 184, 0);
font-size: 20px;
font-size: 30px;
font-family: "CynthoRegular", sans-serif;
font-weight: bold;
padding: 25px 25px;
@ -47,11 +56,11 @@ button {
}
textarea {
width: 80%;
width: 800px;;
height: 300px;
padding: 12px;
box-sizing: border-box;
border: 4px solid rgba(0, 108, 171);
border: 3px solid rgba(0, 108, 171);
border-radius: 5px;
background-color: rgb(255, 199, 44);
font-size: 18px;
@ -64,10 +73,19 @@ textarea {
display: flex; /* places buttons side-by-side */
justify-content: center; /* centers them horizontally */ /* aligns vertically */
gap: 15px;
margin-top: 10px;
margin-top: 0px;
}
img {
display: block;
margin: 0 auto;
align-items: center;
width: 80%;
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

@ -17,10 +17,20 @@
<body>
<br>
<br>
<h1 style="color:#ffffff ; margin-top: 20px; margin-bottom: 10px;
letter-spacing: 1.5px;" >
GREGGordinates
</h1>
<div class="container">
<div class="image">
<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>
{% block content %}

View file

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

View file

@ -3,7 +3,13 @@
{% block content %}
<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>
<a href="{% url 'encode' %}">
<button>
</button>
</a>
{% endblock %}

View file

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