Главное меню
Мы солидарны с Украиной. Узнайте здесь, как можно поддержать Украину.

Карты

Автор Hellerick, сентября 6, 2011, 14:26

0 Пользователи и 1 гость просматривают эту тему.

Валентин Н

ЗАБАНИЛ ВИКИПЕДИЮ
Нижниь ıндэкс в ҷıсʌах — степень тıсяҷı
Препинания авторские!

piton

Негоже союзным республикам делить озеро. Суета.
W

Hellerick

Цитата: Валентин Н от августа 15, 2018, 00:23
Иран что-то получил по сравнению с временами СССР? Если да, значит будущий СССР-2 что-то потерял.

СССР чертил линию по прямой — так же, как теперь согласился Иран.

Каково было мнение Ирана в советские времена, я не знаю.

Wolliger Mensch

Цитата: Hellerick от августа 15, 2018, 04:41
Каково было мнение Ирана в советские времена, я не знаю.

До революции имел одно мнение, после — другое. В обоих случаях оно мало кого волновало.
«Вот интересно, каких лингвистических жемчуг можно найти в море отодвинутых книг», Ян Гавлиш.
«Впредь прошу помнить, что придумал игру не для любых ассоциаций, а для семантически оправданных. Например, чтó это такое: ,,рулетке" — ,,выпечке"?? Тем более, что сей ляпсус я сам совершил...», Марбол
«Ветхий Завет написан на иврите и частично на армейском», Vesle Anne
«МЛ(ять)КО ... ПЛ(ять)NЪ», Тася
«Вот откроет этот спойлер, например, Марго, ничего не подозревая, а потом будут по всему форуму блюющие смайлики...», Авал
«Томан приличный мужчина. Правда по патриархальным меркам слегка голодранец», Vesle Anne
«Возможен ли фонетический переход "ж" в "п с придыханием"», forest

Red Khan

Цитата: Wolliger Mensch от августа 15, 2018, 09:37
До революции имел одно мнение, после — другое. В обоих случаях оно мало кого волновало.
До чьей именно революции?

Wolliger Mensch

«Вот интересно, каких лингвистических жемчуг можно найти в море отодвинутых книг», Ян Гавлиш.
«Впредь прошу помнить, что придумал игру не для любых ассоциаций, а для семантически оправданных. Например, чтó это такое: ,,рулетке" — ,,выпечке"?? Тем более, что сей ляпсус я сам совершил...», Марбол
«Ветхий Завет написан на иврите и частично на армейском», Vesle Anne
«МЛ(ять)КО ... ПЛ(ять)NЪ», Тася
«Вот откроет этот спойлер, например, Марго, ничего не подозревая, а потом будут по всему форуму блюющие смайлики...», Авал
«Томан приличный мужчина. Правда по патриархальным меркам слегка голодранец», Vesle Anne
«Возможен ли фонетический переход "ж" в "п с придыханием"», forest

Red Khan


Hellerick

Цитата: Hellerick от июня 26, 2012, 13:24
Вы довольны собой?
Я собой очень доволен.

Потому-что сегодня придумал еще одну картографическую проекцию. Я назвал ее Hellerick triaxial boreal projection — «Трехосная бореальная проекция Хеллерика».



Всего-то шесть лет спустя я наконец-то сделал скрипт для проецирования растровых карт.



Bhudh

Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Hellerick

Не, на python'е (который язык, а не который форумчанин) наваяно.

Пока что скрипт так выглядит (потом надо будет оптимизировать):

# Source map
# https://commons.wikimedia.org/wiki/File:Large_World_Physical_Map.png
# https://upload.wikimedia.org/wikipedia/commons/thumb/a/a7/Large_World_Physical_Map.png/3600px-Large_World_Physical_Map.png
#
# Axial meridians: (-70, 20, 110)
# Inter-axial meridians: (-160, -25, 65)

from PIL import Image
from math import atan2, pi, sqrt

source_map_path = 'Maps/TriaxialProjection/Large_World_Physical_Map_3600.png'
output_map_path = 'Maps/TriaxialProjection/Generated_map.png'
output_size = 2200
background = (255, 255, 255, 0)
deg = pi/180

sectors = [
    {'interaxial': -25 * deg, 'axial': 20 * deg},  # 0
    {'axial': 20 * deg, 'interaxial': 65 * deg},  # 1
    {'interaxial': 65 * deg, 'axial': 110 * deg},  # 2
    {'axial': 110 * deg, 'interaxial': (-160 + 360) * deg},  # 3
    {'interaxial': (-160 + 360) * deg, 'axial': (-70 + 360) * deg},  # 4
    {'axial': (-70 + 360) * deg, 'interaxial': (-25 + 360) * deg},  # 5
    {'interaxial': (-25 + 360) * deg, 'axial': (20 + 360) * deg},  # 6
]

rotate = 20*deg


def normalize(xy, size):
    xy = list(xy)
    if xy[0] >= size[0]:
        xy[0] = xy[0] - size[0]
    if xy[1] >= size[1]:
        xy[1] = size[1]-1
    return tuple(xy)


def project_point(i, j, source_map, output_map, output_size):
    x = (i + 0.5) - output_size / 2
    y = (j + 0.5) - output_size / 2
    a_p = (atan2(x, y) + rotate) % (2 * pi)
    r = sqrt(x * x + y * y) / (output_size / 2) * pi
    for s in sectors:
        if s['range'][0] <= a_p <= s['range'][1]:
            axial = s['axial']
            interaxial = s['interaxial']
    f_p = (a_p - interaxial) / (axial - interaxial)
    if r < pi:
        f_r = f_p ** (pi / (pi - r))
    else:
        f_r = 0
    a_r = (axial - interaxial) * f_r + interaxial
    lat = pi / 2 - r
    lon = (a_r + pi) % (2*pi) - pi
    point = (
        (lon + pi) / (2 * pi) * source_map.size[0],
        (pi / 2 - lat) / pi * source_map.size[1],
    )
    neighbors = [
        {'coord': (int(point[0]) + 0, int(point[1]) + 0), 'close': (1 - point[0]%1) * (1 - point[1]%1)},
        {'coord': (int(point[0]) + 0, int(point[1]) + 1), 'close': (1 - point[0]%1) * (0 + point[1]%1)},
        {'coord': (int(point[0]) + 1, int(point[1]) + 0), 'close': (0 + point[0]%1) * (1 - point[1]%1)},
        {'coord': (int(point[0]) + 1, int(point[1]) + 1), 'close': (0 + point[0]%1) * (0 + point[1]%1)},
    ]
    for n in neighbors:
        n['coord'] = normalize(n['coord'], source_map.size)
        n['color'] = source_map.getpixel(n['coord'])
    color = tuple([int(sum([n['color'][channel]*n['close'] for n in neighbors])) for channel in range(3)])

    if point[0] < source_map.size[0] and point[1] < source_map.size[1]:
        output_map.putpixel(
            (i, j),
            color
        )


def project_rectangular_bitmap_to_boreal_triaxial(source = source_map_path, output_size = 360):
    print('project_rectangular_bitmap_to_boreal_triaxial')
    for s in sectors:
        s['range'] = sorted([s['axial'], s['interaxial']])
    print(sectors)
    source_map = Image.open(source).convert('RGB')
    r, g, b = source_map.getpixel((0, 0))
    print(r, g, b)
    print(source_map.size)
    output_map = Image.new('RGBA', (output_size, output_size), background)
    for i in range(output_size):
        for j in range(output_size):
            project_point(i, j, source_map, output_map, output_size)
    output_map.save(output_map_path)


project_rectangular_bitmap_to_boreal_triaxial(source_map_path, output_size)


Bhudh

А для чего RGBA, а не просто RGB, альфа-канал же не используется.
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Hellerick

Используется — фон за пределами круга проекции прозрачный.

Hellerick

Чуть-чуть поиграл с параметрами, чтобы сделать получше Пакистан и Австралию:


basta

Эта проекция для сравнения размеров стран и континентов в обмен на точность расстояний между ними?

Hellerick

Скажем так: Задача проекции — более-менее адекватно изобразить каждый обитаемый регион и при этом не скрывать какими-то разрывами его соседство с другими регионами.

Поскольку через южные половины океанов не наблюдается заметных экономических или каких-то других связей (кроме, пожалуй, Кейптаун—Сан-Паулу), карта хорошо годится для отображения большей части человеческой деятельности, или, например, неморской биологии.

Bhudh

В пятно Тихого океана можно внедрить Антарктиду, а то чё её размазало по окружности.
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Python

Цитата: Bhudh от августа 16, 2018, 14:48
В пятно Тихого океана можно внедрить Антарктиду, а то чё её размазало по окружности.
В виде вставки? Или как-то изогуть-растянуть пролив Дрейка вместе с Южной Америкой?
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

Bhudh

Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Wolliger Mensch

Цитата: Hellerick от августа 16, 2018, 09:03
Чуть-чуть поиграл с параметрами, чтобы сделать получше Пакистан и Австралию:



Евразия вашей проекции очень мешает.

Нужно сёшки северное половиноземелье в стандартной какой-нибудь проекции.
«Вот интересно, каких лингвистических жемчуг можно найти в море отодвинутых книг», Ян Гавлиш.
«Впредь прошу помнить, что придумал игру не для любых ассоциаций, а для семантически оправданных. Например, чтó это такое: ,,рулетке" — ,,выпечке"?? Тем более, что сей ляпсус я сам совершил...», Марбол
«Ветхий Завет написан на иврите и частично на армейском», Vesle Anne
«МЛ(ять)КО ... ПЛ(ять)NЪ», Тася
«Вот откроет этот спойлер, например, Марго, ничего не подозревая, а потом будут по всему форуму блюющие смайлики...», Авал
«Томан приличный мужчина. Правда по патриархальным меркам слегка голодранец», Vesle Anne
«Возможен ли фонетический переход "ж" в "п с придыханием"», forest

Bhudh

Цитата: Hellerick от августа 16, 2018, 04:25Используется — фон за пределами круга проекции прозрачный.
Так на JPEG-то этого не видно :eat:.
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Hellerick

Цитата: Bhudh от августа 16, 2018, 15:52
Так на JPEG-то этого не видно :eat:.
А это я вас жалею. Нефиг вам 20-мегабайтные картинки качать.

Валентин Н

http://www.floodmap.net/
Показывает что будет затоплено при подъёме воды, макс. 800м.
Только на север не показывает, что резко снижает ценность.
ЗАБАНИЛ ВИКИПЕДИЮ
Нижниь ıндэкс в ҷıсʌах — степень тıсяҷı
Препинания авторские!

Bhudh

Сделайте в Google Earth полупрозрачный полигон или наложение синего цвету на весь шарик и устанавливайте ему любую абсолютную высоту.

Вот, например, Москва при подъёме на 230 м (почему по ссылке соответствует подъёму на 140‒160 м, не имею ни малейшего понятия):



Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Валентин Н

Это не выход, надо же чтоб учитывалось сообщение с морем, иначе любая изолированная низменность окажется якобы затопленной.
ЗАБАНИЛ ВИКИПЕДИЮ
Нижниь ıндэкс в ҷıсʌах — степень тıсяҷı
Препинания авторские!

Валентин Н

Цитата: Валентин Н от августа 19, 2018, 13:20
Это не выход, надо же чтоб учитывалось сообщение с морем, иначе любая изолированная низменность окажется якобы затопленной.
Что мы и видим на той карте, ндааа.
ЗАБАНИЛ ВИКИПЕДИЮ
Нижниь ıндэкс в ҷıсʌах — степень тıсяҷı
Препинания авторские!

Быстрый ответ

Обратите внимание: данное сообщение не будет отображаться, пока модератор не одобрит его.

Имя:
Имейл:
Проверка:
Оставьте это поле пустым:
Наберите символы, которые изображены на картинке
Прослушать / Запросить другое изображение

Наберите символы, которые изображены на картинке:

√36:
ALT+S — отправить
ALT+P — предварительный просмотр