2 circles and a dot
This commit is contained in:
parent
26994d7c67
commit
1845e30a1f
29
index.html
29
index.html
|
|
@ -14,7 +14,7 @@
|
|||
#slider {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
margin-bottom:3em;
|
||||
margin-bottom:1em;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -51,22 +51,35 @@
|
|||
{
|
||||
"city": "Hamburg",
|
||||
"lat": "53.64286",
|
||||
"lng": "9.9753"
|
||||
"lng": "9.9753",
|
||||
"icon": "test5.png",
|
||||
"anchor": [101,101]
|
||||
},
|
||||
// {
|
||||
// "city": "Kiel",
|
||||
// "lat": "54.3297",
|
||||
// "lng": "10.1435"
|
||||
// },
|
||||
// {
|
||||
// "city": "München",
|
||||
// "lat": "48.1341",
|
||||
// "lng": "11.5674",
|
||||
// "icon": "test8.png",
|
||||
// "anchor": [144,144]
|
||||
// },
|
||||
{
|
||||
"city": "München",
|
||||
"lat": "48.1341",
|
||||
"lng": "11.5674"
|
||||
"city": "La Spezia",
|
||||
"lat": "44.1064",
|
||||
"lng": "9.8439",
|
||||
"icon": "test8.png",
|
||||
"anchor": [144,144]
|
||||
},
|
||||
{
|
||||
"city": "Teisnach",
|
||||
"lat": "49.0301",
|
||||
"lng": "12.998"
|
||||
"lng": "12.998",
|
||||
"icon": "test13.png",
|
||||
"anchor": [144,144]
|
||||
}
|
||||
];
|
||||
|
||||
|
|
@ -74,8 +87,8 @@
|
|||
const markers = locations.map(location => {
|
||||
return L.marker([location.lat, location.lng], {icon: L.icon({
|
||||
|
||||
iconUrl: location.city + "64.png",
|
||||
iconAnchor: [32,32]
|
||||
iconUrl: location.icon,
|
||||
iconAnchor: location.anchor
|
||||
})}).addTo(map);
|
||||
});
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -17,13 +17,13 @@ def circular_mask(img):
|
|||
return img
|
||||
|
||||
|
||||
def arrange_imager_in_circle(images, spacing=5):
|
||||
def arrange_imager_in_circle(images, spacing=5, min_radius=0):
|
||||
|
||||
d = images[0].size[0]
|
||||
dis = d + spacing
|
||||
theta = 2*math.pi / len(images)
|
||||
|
||||
radius = dis/2/math.sin(theta/2)
|
||||
radius = max(dis/2/math.sin(theta/2), min_radius)
|
||||
imgWidth, imgHeight = (int(d+radius*2), int(d+radius*2))
|
||||
masterImage = Image.new("RGBA", (imgWidth, imgHeight), (255,255,255,0))
|
||||
|
||||
|
|
@ -62,7 +62,21 @@ def create_circle(image_paths, output_path):
|
|||
circular_images[0].save(output_path)
|
||||
return
|
||||
|
||||
output_img = arrange_imager_in_circle(circular_images)
|
||||
if len(circular_images) < 7:
|
||||
output_img = arrange_imager_in_circle(circular_images)
|
||||
ow, oh = output_img.size
|
||||
else:
|
||||
inner_img = arrange_imager_in_circle(circular_images[:4])
|
||||
iw, ih = inner_img.size
|
||||
mask = inner_img.split()[-1]
|
||||
dr = circular_images[0].size[0]//2 + iw//2
|
||||
output_img = arrange_imager_in_circle(circular_images[4:],min_radius=dr)
|
||||
ow, oh = output_img.size
|
||||
output_img.paste(inner_img,((ow-iw)//2,(oh-ih)//2),mask)
|
||||
|
||||
draw = ImageDraw.Draw(output_img)
|
||||
dr = 3
|
||||
draw.ellipse((ow//2-dr, oh//2-dr, ow//2+dr, oh//2+dr),fill=(255,0,0),outline=False)
|
||||
output_path = output_img.save(output_path)
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue