Разница между координатами на платформе Android и IOS

Я использую библиотеку Android MUPDF для отображения PDF на Android.

MUPDF возвращает PDF-файл как растровое изображение, и я использовал слой Canvas поверх него для визуализации аннотаций, таких как выделение, подчеркивание, зачеркивание. Я пытаюсь синхронизировать аннотации на IPad и Android не работает из-за разницы координат на обоих устройствах. Я использую концепцию квадратов, описанную в Adobe для рендеринга аннотаций.

Предположим, я делаю аннотации Highlight в одной строке, я получаю верхнюю (левую и правую) и нижнюю (левую и правую) координаты x, y. С теми же координатами, когда я пытаюсь визуализировать аннотацию на iPad, она ничего не показывает на экране и наоборот. Но когда я пытаюсь синхронизировать координаты одного устройства Android с другим устройством Android, он отображается правильно. То же самое с одним iPad по сравнению с другим iPad.

Ниже приведены точки для одной и той же аннотации к одному и тому же файлу.

iPad:

"quadPoints": [
      [
          "72.06",
          "626.51",
          "390.07",
          "626.51",
          "72.06",
          "610.91",
          "390.07",
          "610.91"
      ]

Android:

"quadPoints": [
     [
          "57.6",
          "330.96786",
          "312.15",
          "330.96786",
          "57.6",
          "362.2044",
          "312.57",
          "362.2044"
      ]

person Sonali    schedule 21.04.2015    source источник


Ответы (1)


CoreGraphics в iOS использует нижнюю левую точку как начало координат (0,0).

Для преобразования см. Ответ: Как компенсировать перевернутую систему координат основной графики для облегчения рисования?

Дополнительную информацию можно найти в разделе Концепции рисования iOS: https://developer.apple.com/library/content/documentation/2DDrawing/Conceptual/DrawingPrintingiOS/GraphicsDrawingOverview/GraphicsDrawingOverview.html

person Roman Volkov    schedule 02.03.2017