Геометрические измерительные инструменты на экране для документов в формате PDF

Не уверенный, если что-то существует для такой определенной потребности, но я попробую так или иначе. У меня есть некоторые карты PDF, и я задавался вопросом, существует ли какое-либо СРЕДСТВО ПРОСМОТРА PDF или подобное программное обеспечение, которое позволяет мне измерять расстояния и использовать компас для выяснения заголовков.

Единственная вещь, о которой я могу думать, состоит в том, чтобы импортировать карты в программное обеспечение редактирования изображение и использовать строку, соответствующую масштабу для измерения расстояний, но это было бы очень непрактичным и потенциально трудоемким, и все еще не будет никакого способа для меня измерить заголовки.

Править: screenruler и kruler являются, к сожалению, слишком основными, поскольку они испытывают недостаток в транспортирах, а также способности сделать вращения точности.

Что относительно чего-то, что позволило бы мне накладывать, переместитесь и поверните прозрачное изображение моего выбора? Это позволило бы мне создавать или находить свои собственные изображения измерительных инструментов.

EDIT2: Под управлением Ubuntu 18.10 на планшете

2
задан 9 April 2019 в 00:18

2 ответа

Получите информацию о геометрии об экране

Хотя решение ниже должно быстро дать Вам всю информацию, Вы просите, не уверенный, если способ, которым представлена информация, полностью удовлетворит Ваше описание.

Это - отредактированная версия этого ответа, теперь расширенного с помощью нескольких дополнительных вычислений, теперь включая угол к мнимой горизонтальной строке, а также длину линии, которую Вы проводите, в (эквиваленты) пкс:

enter image description here

Сценарий

#!/usr/bin/env python3
import subprocess
import os
import math

home = os.environ["HOME"]
area = home+"/"+".measure_area.txt"

def get_pos():
    pos_data = subprocess.check_output(["xdotool", "getmouselocation"]).decode("utf-8")
    return [m[2:] for m in pos_data.split()[:2]]

def confirm():
    get = subprocess.check_output(["xrandr", "--verbose"]).decode("utf-8").split()
    for s in [get[i-1] for i in range(len(get)) if get[i] == "connected"]:
        br_data = float(get[get.index("Brightness:")+1])
        brightness = lambda br: ["xrandr", "--output", s, "--brightness", br]
        flash = ["sleep", "0.1"]
        for cmd in [brightness(str(br_data-0.1)), flash, brightness(str(br_data))]:
            subprocess.call(cmd)

if not os.path.exists(area):
    with open(area, "wt") as measure:
        measure.write(str(get_pos()))
    confirm()
else:
    second = get_pos()
    with open(area) as first_m:
        try:
            first = eval(first_m.read())
            w = int(math.fabs(int(second[0]) - int(first[0])))
            h = int(math.fabs(int(second[1]) - int(first[1])))
            l = str(round(math.sqrt(pow(w, 2) + pow(h, 2))))
            arc = math.degrees(math.atan(w/h))
            angle = str(round(90-arc))
            command = [
                'zenity', '--info', '--title', 'Area Size', '--width', '200',
                '--text', "rectangle: " + str(w) + 'px x ' + str(h) + "px"
                "\nline length: " + l + "px\nangle: " + str(angle) + "°",
            ]
            #---
            confirm()
        except SyntaxError:
            text = "Please try again, there was an error in the data"
            command = ['zenity', '--info', '--title', 'Please try again', '--text', text]
        subprocess.Popen(command)
    os.remove(area)

Как это работает

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

Это работает, как следует:

  1. Поместите указатель мыши в первое положение (не нажимая)
  2. Нажмите сочетание клавиш по Вашему выбору (см. далее ниже),
  3. Поместите мышь во второе положение (снова, не нажимая)
  4. Нажмите свое сочетание клавиш снова. Окно Zenity покажет Вам результат как в изображении выше.

Как настроить

  1. Использование сценария xdotool:

    sudo apt-get install xdotool
    
  2. Скопируйте сценарий ниже в пустой файл, сохраните его в ~/bin (необходимо будет, вероятно, создать каталог), как measure_area (никакое расширение), и делают это исполняемым файлом.

  3. Добавьте сочетание клавиш по Вашему выбору для запущения скрипта: Выберите: Параметры настройки системы> "Клавиатура"> "Ярлыки"> "Пользовательские Ярлыки". Нажмите "+" и добавьте команду:

    measure_area
    

Примечания

  • Необходимо будет выйти из системы / в сначала
  • Это не имеет значения, что Вы берете в качестве первого/второго положения; сценарий измеряет абсолютные значения.
0
ответ дан 2 December 2019 в 06:22

Предположение, что картой PDF, которую Вы имеете, является геопространственный PDF, можно использовать Adobe Acrobat и встроенные аналитические инструменты, или можно использовать мобильное приложение Карт Avenza по телефону или планшету.

0
ответ дан 2 December 2019 в 06:22

Другие вопросы по тегам:

Похожие вопросы: