Использование приложения «Компас» на Apple Watch Ultra

Приложение «Компас»  показывает, куда направлены Ваши Apple Watch Ultra, а также Вашу текущую геопозицию и высоту над уровнем моря. Можно создавать путевые точки, а затем находить направление к каждой из них и расстояние между ними. Кроме того, можно использовать функцию «Возврат по маршруту», чтобы возвращаться обратно пройденным путем.

Примечание. При удалении приложения «Компас» с iPhone оно также удаляется с Apple Watch Ultra.

Просмотр курса, высоты, уклона и координат

Ваш курс отображается вверху циферблата часов. Прокрутите колесико Digital Crown, чтобы просмотреть уклон, высоту и координаты во внутреннем кольце компаса. Продолжайте прокручивать колесико, чтобы просмотреть геопозицию созданных Вами путевых точек.

Для просмотра подробной информации в списке в любом виде компаса коснитесь  слева сверху.

  1. Откройте приложение «Компас»  наApple Watch Ultra.

  2. Чтобы добавить курс, коснитесь , прокрутите вниз, коснитесь «Магнитный курс», поверните колесико Digital Crown по направлению курса и коснитесь «Готово».

    Чтобы изменить курс, коснитесь , прокрутите вниз, коснитесь «Магнитный курс», поверните колесико Digital Crown по направлению нового курса и коснитесь «Готово».

  3. Чтобы очистить курс, коснитесь , прокрутите вниз, коснитесь «Очистить магнитный курс» и коснитесь «Готово».

Примечание. Координаты могут быть доступны не во всех регионах.

Направление на истинный север

Чтобы компас указывал направление на истинный север, а не на магнитный северный полюс, выполните перечисленные ниже действия.

  1. Откройте приложение «Настройки»  на Apple Watch Ultra.

  2. Коснитесь «Компас», затем включите параметр «Истинный север».

На экране настроек приложения «Компас» можно также выбрать отображение координатной сетки — как градусы/минуты/секунды, десятичные градусы, военные прямоугольные координаты / USNG или проекция Меркатора.

Создание и просмотр путевых точек на компасе

В приложении «Компас» можно добавить свою геопозицию в качестве путевой точки. После этого можно просматривать направление к каждой созданной путевой точке компаса и расстояние до нее.

  1. Откройте приложение «Компас»  наApple Watch Ultra.

  2. Коснитесь , чтобы добавить путевую точку.

  3. Введите данные путевой точки, такие как метка, цвет или символ (например, машина или дом), затем коснитесь «Готово».

  4. Для просмотра путевой точки компаса коснитесь нужной путевой точки на любом из трех экранов Компаса, поверните колесико Digital Crown, чтобы выбрать ее, и коснитесь «Выбрать».

    На экране появится направление к путевой точке и расстояние до нее, например, «в 6 км слева от Вас».

  5. Коснитесь нижней части экрана, чтобы просмотреть путевую точку и ее координаты на карте.

Чтобы изменить данные выбранной путевой точки, коснитесь  на экране путевых точек.

Добавление путевой точки компаса с помощью кнопки действия

На Apple Watch Ultra можно быстро добавить путевую точку компаса нажатием кнопки действия.

  1. Откройте приложение «Настройки»  на Apple Watch Ultra.

  2. Коснитесь «Кнопка действия», коснитесь «Действие», коснитесь «Путевая точка», затем коснитесь <, чтобы вернуться к списку действий.

  3. Нажмите кнопку действия, чтобы добавить свою путевую точку и открыть экран редактирования.

Добавление расширения для путевых точек компаса на циферблат

С помощью расширения «Путевые точки на компасе» можно быстро прокладывать путь к созданным путевым точкам, к последней просмотренной путевой точке в приложении «Компас» или к месту парковки автомобиля.

  1. Когда отображается циферблат, коснитесь дисплея и удерживайте палец, затем выберите «Изменить».

  2. Смахните влево до конца.

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

  3. Коснитесь расширения, чтобы выбрать его, поворачивайте колесико Digital Crown, пока не увидите «Путевые точки на компасе», затем выполните любое из следующих действий:

    • Коснитесь любой путевой точки из списка, чтобы добавить ее в качестве расширения.

    • Коснитесь «Еще», затем коснитесь путевой точки, «Последняя просмотренная путевая точка» или «Путевая точка: место парковки».

  4. Нажмите колесико Digital Crown, чтобы сохранить изменения, затем коснитесь циферблата, чтобы перейти к нему.

  5. Коснитесь расширения, чтобы просмотреть путевую точку в приложении «Компас».

Возврат по маршруту

Можно использовать приложение «Компас», чтобы отслеживать маршрут, а затем возвращаться пройденной дорогой, если Вы сбились с пути.

Примечание. Функция «Возврат по маршруту» создана для использования в незнакомой местности вдали от привычных мест (например, дома или работы) и за пределами густонаселенных районов с доступом к Wi-Fi.

  1. Откройте приложение «Компас»  наApple Watch Ultra.

  2. Коснитесь , затем коснитесь «Начать», чтобы начать отслеживание маршрута.

  3. Чтобы вернуться пройденным путем, коснитесь , затем коснитесь «Вернуться по маршруту».

    На компасе отобразится геопозиция, где Вы в первый раз коснулись кнопки .

  4. Следуйте этим маршрутом, чтобы вернуться к месту, где была включена функция «Возврат по маршруту».

  5. По завершении коснитесь , затем коснитесь «Удалить маршрут».

Начало возврата по маршруту с помощью кнопки действия

  1. Откройте приложение «Настройки»  на Apple Watch Ultra.

  2. Коснитесь «Кнопка действия», коснитесь «Действие», коснитесь «Возврат по маршруту», затем коснитесь <, чтобы вернуться к списку действий.

  3. Нажмите кнопку действия, чтобы начать возврат по маршруту.

    Нажмите кнопку действия и боковую кнопку одновременно, чтобы приостановить возврат по маршруту.

Добавление расширения «Высота» на циферблат

На Apple Watch Ultra альтиметр всегда включен и позволяет отслеживать текущую высоту в реальном времени. Добавьте расширение «Высота» на циферблат, чтобы быстро проверять текущую высоту над уровнем моря.

  1. Когда отображается циферблат, коснитесь дисплея и удерживайте палец, затем выберите «Изменить».

  2. Смахните влево до конца.

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

  3. Коснитесь расширения, чтобы выбрать его, поворачивайте колесико Digital Crown, пока не увидите слово «Компас», затем выберите вариант «Высота».

  4. Нажмите колесико Digital Crown, чтобы сохранить изменения, затем коснитесь циферблата, чтобы перейти к нему.

Если на экране отображается красный вращающийся радар

Если при открытии приложения «Компас» на экране отображается красный вращающийся радар, причина может заключаться в одном из перечисленных ниже факторов.

  • Apple Watch Ultra Наличие магнитов. На точность показаний компаса могут влиять магнитные материалы, используемые в некоторых ремешках для часов. См. статью службы поддержки Apple Использование компаса на Apple Watch.

  • Службы геолокации выключены. Чтобы включить или выключить службы геолокации, откройте приложение «Настройки»  на Apple Watch Ultra, коснитесь «Конфиденциальность», затем коснитесь «Службы геолокации».

  • Калибровка компаса выключена. Чтобы включить или выключить калибровку компаса, откройте приложение «Настройки» на iPhone, перейдите в раздел «Конфиденциальность и безопасность» > «Службы геолокации», затем коснитесь «Системные настройки».

Выделение, перемещение, изменение размера и поворот фигур

В приложении Visio доступны разнообразные средства выделения, перемещения, изменения размеров и поворота фигур и объектов. После выделения объекта (или всех объектов) в документе можно изменить его положение, увеличить или уменьшить его, отразить слева направо и сдвинуть в нужное место.

Примечание: Если фигуры на странице документа не удается выделить, возможно, они защищены, являются частью заблокированного слоя или сгруппированы. Дополнительные сведения см. в статье Устранение проблем выделения в Visio.

Выделение фигур

Чаще всего перед перемещением, поворотом, изменением размера фигур и выполнением над ними других операций их необходимо выделить в документах. В Visio можно выделять фигуры по одной, по области и с помощью инструмента произвольного выделения. Кроме того, можно выделить сразу все фигуры на странице.

Задача

Описание

Выделение одной фигуры

    org/ItemList»>
  1. На вкладке Главная в группе Сервис щелкните инструмент Указатель.

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

Выделение нескольких фигур с помощью инструмента «Область выделения»

  1. На вкладке Главная в группе Редактирование нажмите кнопку Выделить и выберите пункт Область выделения.

  2. Нажмите кнопку мыши в точке слева и вверху относительно фигур, которые необходимо выделить, и перетащите указатель, чтобы создать вокруг фигур рамку выделения.

  3. После выделения фигур вокруг них отобразятся синие маркеры выделения, а вокруг отдельных фигур — фиолетовые линии.

Выделение нескольких фигур с помощью инструмента «Произвольное выделение»

  1. org/ListItem»>

    На вкладке Главная в группе Редактирование нажмите кнопку Выделить и выберите пункт Произвольное выделение.

  2. Нарисуйте рамку выделения произвольной формы вокруг фигур, которые необходимо выделить.

  3. При выделении нескольких фигур вокруг них отобразятся синие маркеры выделения.

Выделение частично захваченных фигур с помощью области выделения

Чтобы областью выделения в приложении Visio можно было выделять частично захваченные фигуры, выполните указанные ниже действия.

  1. Откройте вкладку Файл.

  2. В группе Visio выберите пункт Параметры.

  3. В диалоговом окне Параметры Visio на вкладке Дополнительно в группе Параметры правки установите флажок Выделять фигуры, частично находящиеся в области.

Выделение нескольких фигур с помощью сочетаний клавиш

Чтобы выделить несколько фигур, нажмите и удерживайте нажатой клавишу SHIFT или CTRL, щелкая при этом фигуры.

Совет: Чтобы добавить фигуру в выделенную область, созданную с помощью инструмента Область выделения, нажмите клавишу SHIFT или CTRL и, удерживая ее нажатой, щелкните фигуру.

Выделение всех фигур на странице документа

На вкладке Главная в группе Редактирование нажмите кнопку Выделить и выберите пункт Выделить все.

Выделение всех объектов определенного типа

  1. На вкладке Главная

    в группе Редактирование нажмите кнопку Выделить и выберите пункт Выбор по типу.

  2. В диалоговом окне Выбор по типу выберите тип объектов, которые необходимо выделить, например фигуры, соединительные линии или контейнеры, и нажмите кнопку ОК.

Отмена выделения одной или нескольких фигур

Чтобы отменить выделение всех фигур, сделайте следующее:

Чтобы отменить выделение одной фигуры из нескольких выделенных фигур, сделайте следующее:

Перемещение фигур

Visio поддерживает несколько способов точного перемещения фигур в нужное место.

Задача

Действие

Перемещение фигур с помощью мыши

    org/ItemList»>
  1. Выделите все фигуры, которые нужно переместить.

  2. Наведите указатель мыши на одну из фигур. Появится крестообразная стрелка.

  3. Перетащите фигуры в новое место.

    Все выделенные фигуры будут перемещены на одинаковое расстояние и в одном направлении.

Советы: 

  • Чтобы переместить фигуры точно по вертикали или по горизонтали, при перемещении нажмите и удерживайте нажатой клавишу SHIFT.

  • Чтобы переместить фигуры на другую страницу в документе, перетащите их на вкладку страницы.

Перемещение фигур на определенное расстояние (требуется Visio профессиональный)

  1. Выделите все фигуры, которые нужно переместить.

  2. На вкладке Вид в группе Макросы нажмите кнопку Надстройки, наведите указатель мыши на элемент Дополнительные решения Visio, а затем выберите пункт Переместить фигуры.

  3. org/ListItem»>

    В разделе Направление выберите систему координат, которую необходимо использовать при перемещении фигур.

  4. Укажите расстояния для перемещения выделенных фигур.

  5. Чтобы переместить копию выделенных фигур с сохранением исходных фигур в первоначальном положении, установите флажок Дублировать.

  6. По завершении выбора нажмите кнопку ОК.

Сдвиг фигур с помощью клавиш со стрелками

    org/ItemList»>
  1. Выделите все фигуры, которые нужно переместить.

  2. Выполните действия, описанные ниже.

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

      Примечание: Если положение, к которому можно привязать фигуру, отсутствует, при нажатии клавиши со стрелкой фигура перемещается на одно деление линейки.

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

Примечание: Если при нажатии клавиши со стрелкой перемещается не фигура, а сам документ, убедитесь, что не нажата клавиша SCROLL LOCK.

Изменение размера фигур

В Visio размеры фигур можно изменить путем перетаскивания или указания конкретного размера.

Задача

Действие

Изменение размеров двумерной (плоской) фигуры (например, прямоугольника) с помощью мыши

    org/ItemList»>
  1. Выделите все фигуры, размеры которых нужно изменить.

  2. Перетащите маркер выделения , пока фигура не примет нужные размеры. Чтобы сохранить пропорции, перетащите угловой маркер.

Изменение размеров одномерной фигуры (например, линии) с помощью мыши

  1. Выделите фигуру, размер которой требуется изменить.

  2. org/ListItem»>

    Перетащите конечную точку до нужной длины.

Изменение размера фигуры в окне Размер и положение

  1. Выделите все фигуры, которые нужно переместить.

  2. На вкладке Вид в группе Показ нажмите кнопку Области задач и выберите пункт Размер и положение.

  3. В окне Размер и положение введите новые значения в поля Ширина, Высота или Длина.

Поворот и отражение фигур

Фигуры можно поворачивать на определенный угол, отражать сверху вниз и слева направо или поворачивать с помощью маркера поворота.

Задача

Действие

Поворот фигуры на 90 градусов

  1. Выделите фигуры, которые нужно повернуть.

  2. Выполните одно из указанных ниже действий.

    • Чтобы повернуть фигуру против часовой стрелки, на вкладке Главная в группе Упорядочение нажмите кнопку Положение, наведите указатель мыши на элемент Повернуть фигуры и выберите пункт Повернуть влево на 90º.

    • Чтобы повернуть фигуру по часовой стрелке, на вкладке Главная в группе Упорядочение нажмите кнопку Положение, наведите указатель мыши на элемент Повернуть фигуры и выберите пункт Повернуть вправо на 90º.

Поворот фигуры с помощью маркера поворота

  1. Выделите фигуры, которые нужно повернуть.

  2. Перетащите маркер поворота .

    Фигура будет повернута вокруг точки закрепления . Чтобы переместить точку закрепления, наведите указатель мыши на маркер поворота, щелкните точку закрепления и перетащите ее в новое место.

    Чем дальше вы отведете указатель от выделенной фигуры при перетаскивании маркера поворота, тем точнее можно отрегулировать угол поворота.

Поворот фигуры на нужный угол в окне Размер и положение

  1. Выделите фигуры, которые нужно повернуть.

  2. На вкладке Вид в группе Показ нажмите кнопку Области задач и выберите пункт Размер и положение.

  3. На вкладке Вид в группе Показ нажмите кнопку Области задач и выберите пункт Размер и положение.

  4. В окне Размер и положение введите новые значения в поля Угол.

Отражение фигуры по вертикали или по горизонтали

  1. Выделите фигуры, которые нужно отразить.

  2. На вкладке Главная в группе Упорядочение нажмите кнопку Положение, наведите указатель мыши на элемент Повернуть фигуры и сделайте следующее:

    • org/ListItem»>

      Чтобы отразить по вертикали, выберите Отразить сверху вниз.

    • Чтобы отразить по горизонтали, выберите Отразить слева направо.

Сведения о повороте текста см. в статье Добавление, изменение, перемещение или поворот текста и текстовых блоков.

3d — Как определить, находится ли точка выше или ниже плоскости, определяемой треугольником

$\begingroup$

Хотя другие уже ответили на поставленный вопрос, я хотел бы дать несколько советов тем, кто делает то же самое, что делает OP.

  1. Предварительно вычислить единичный вектор нормали к треугольнику и сохранить его.

    Если вершинами треугольника являются $\vec{v}_0$, $\vec{v}_1$ и $\vec{v}_2$, то нормаль треугольника обычно определяется как $$\vec{n} = \bigl(\vec{v}_1 — \vec{v}_0\bigr)\times\bigl(\vec{v}_2 — \vec{v}_0\bigr)$$ где $\times$ обозначает векторное векторное произведение. Это масштабируется до единицы длины, $$\шляпа{n} = \frac{\vec{n}}{\left\lVert\vec{n}\right\rVert} = \frac{\vec{n}}{\sqrt{\vec{n} } \cdot \vec{n}}}$$

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

  2. Точка находится «над» треугольником, если она находится в том же полупространстве, что и вектор нормали треугольника относительно плоскости, образованной треугольником.

    (Если вы продлите плоскость треугольника до бесконечности, она разделит пространство на две половины. Если вы посмотрите на треугольник сбоку, точка будет «над» треугольником, если она находится на той же стороне, что и нормаль; и «ниже» если она находится на другой стороне. Если точка находится точно на плоскости треугольника, я рекомендую вам использовать для нее четкий и недвусмысленный термин; я сам использую «точно на треугольнике». Я уверен, что у математиков есть более точные термины, но для тех из нас, кто использует математику только как инструмент для решения задач, достаточно убедиться, что термины однозначны.)

    Это означает, что точка $\vec{p}$ имеет расстояние со знаком $$d = \bigl(\vec{p} — \vec{v}_0\bigr) \cdot \hat{n}$$ от плоскости треугольника. (Поскольку все три вершины треугольника находятся на плоскости, вы можете использовать $\vec{v}_1$ или $\vec{v}_2$ выше; вы все равно получите точно такой же результат с точностью до ошибки округления.)

    Если $\hat{n}$ не является единичным вектором, т. е. $\left\lVert\hat{n}\right\rVert\ne 1$, расстояние указывается в единицах длины нормального вектора.
     

  3. Когда известно расстояние со знаком $d$ от точки $\vec{p}$ до плоскости, можно тривиально спроецировать точку на плоскость: $$\vec{p}_\text{плоскость} = \vec{p} — d \шляпа{n}$$ Если $\hat{n}$ не является единичным вектором, т. е. $\left\lVert\hat{n}\right\rVert\ne1$, правая сторона на самом деле равна $\vec{p} — \hat{n} (d / \lVert\hat{n}\rVert)$, и здесь вам нужна «медленная» операция извлечения квадратного корня. Поскольку вы, вероятно, проверяете много точек для каждого треугольника, стоит предварительно вычислить и сохранить $\hat{n}$ заранее.
     

  4. Чтобы определить, находится ли $\vec{p}_\text{plane}$ внутри треугольника, найдите барицентрические координаты $(u, v)$, соответствующие $\vec{p}_\text{plane}$ относительно этого треугольника.

    Для этого проверьте, какие оси имеют наименьшие значения по величине в $\hat{n}$. Порядок их не имеет значения. (По сути, это выбирает ось, вдоль которой следует смотреть на треугольник, при этом треугольник должен быть максимально большим. Мы делаем это, чтобы свести к минимуму числовые ошибки.) Есть три возможности: $x$ и $y$; $x$ и $z$; и $y$ и $z$. Решение получается с использованием координат по этим двум осям.

    Решение для $\vec{p}_\text{plane} = (x, y, z)$ с $\hat{n}$ с ближайшими к нулю компонентами $x$ и $y$: $$\begin{случаи} \displaystyle u = \frac{ (x — x_0)(y_2 — y_0) — (y — y_0)(x_2 — x_0)}{ (x — x_2)(y_1 — y_0) — (y — y_2)(x_1 — x_0 ) } \\ \displaystyle v = \frac{ (y — y_0)(x_1 — x_0) — (x — x_0)(y_1 — y_0)}{ x_0 (y_1 — y_2) + x_1 (y_2 — y_0) + x_2 (y_0 — y_1) } \\ \end{случаи}$$ Решение для других пар осей вы найдете, просто переставив координаты ($y$, $y_0$, $y_1$, $y_2$ на $z$, $z_0$, $z_1$, $z_2$ на $ оси x$ и $z$, а также от $x$, $x_0$, $x_1$, $x_2$ до $y$, $y_0$, $y_1$, $y_2$ для $y$ и $z$) .

    Также обратите внимание, что сначала нужно вычислить делитель для $u$. Он будет равен нулю в $\vec{v}_2$, где $u = 0$, поэтому, когда делитель очень близок к нулю, просто используйте $u = 0$.

    В барицентрических координатах $\vec{v}_0$ находится в точке $(0, 0)$; $\vec{v}_1$ находится на уровне $(1,0)$, а $\vec{v}_2$ находится на уровне $(0,1)$. Весь треугольник равен $0 \le u, v, u + v \le 1$. Ребра находятся в точках $u = 0$, $v = 0$ и $u + v = 1$.

    На практике тест включения треугольника определяется как $$\Bigl(u \ge -\epsilon\Bigr) \text{ и } \Bigl(v \ge -\epsilon\Bigr) \text{ и } \Bigl(u \le 1+\epsilon\Bigr) \text{ и } \Bigl(v \le 1+\epsilon\Bigr) \text{ и } \Bigl(u + v \le 1+\epsilon\Bigr)$$ где $\epsilon$ представляет точность ваших числовых координат. Это наибольшее положительное число, которое вы считаете равным нулю. (Аналогично, если ранее $D$ был делителем $u$, если $-\epsilon \le D \le +\epsilon$, используйте $u = 0$.)

    Для линейной интерполяции любого значения $c$ внутри треугольника, где $c = c_0$ в точке $\vec{v}_0$, $c_1$ в точке $\vec{v}_1$ и $c_2$ в точке $\vec {v}_2$, вы можете использовать $$c(u,v) = (1 — v)\bigl((1-u) c_0 + u c_1\bigr) + v c_2$$

В совокупности это означает, что вам нужно всего 15 (скалярных) умножений и менее тридцати сложений или вычитаний, чтобы выяснить, находится ли точка внутри треугольника или внутри треугольной призмы, отходящей от треугольника вдоль его нормали, включая барицентрические координаты, необходимые для интерполяции текстуры или цвета. (Сама цветовая интерполяция — это всего четыре умножения на компонент, поэтому обычно 12 дополнительных умножений.) Изящно, а?

$\endgroup$

геометрия — Нахождение точки над прямой в $O(\log n)$

спросил

Изменено 10 лет, 10 месяцев назад

Просмотрено 484 раза

$\begingroup$

Я пытаюсь решить следующую проблему. Пока безуспешно.

Пусть $S$ — набор из $n$ точек на плоскости. Предварительно обработайте $S$ так, чтобы по (невертикальной) прямой $l$ можно было определить, существует ли какая-либо точка $S$ выше $l$ за время $O(\log n)$. Немного деталей: предварительно обработайте $S$, не зная заранее строку $l$. Предварительная обработка не имеет особых требований.

Согласно требованию big-$O$ $O(\log n)$ определение должно быть реализовано аналогично бинарному поиску.

Я рассмотрел несколько вариантов, $y$ — координата, наклоны, но в любом случае это кажется неактуальным.

Если у вас есть идеи, буду признателен, если поделитесь ими с нами.

Спасибо!

  • геометрия
  • алгоритмы
  • информатика
  • вычислительная геометрия

$\endgroup$

2

$\begingroup$

Найдите среди заданных точек те, которые лежат на верхней границе выпуклой оболочки $S$, и отсортируйте их по координате $x$. (любая точка равна , а не на этой верхней границе можно игнорировать). Тогда вы сможете выполнить бинарный поиск по следующим строкам:

Учитывая $1$, проверьте его по средней точке. Если средняя точка выше $l$, все готово. В противном случае сравните наклон $l$ со средним значением наклонов двух сегментов верхней границы, примыкающих к точке, с которой вы только что сравнили. Если наклон $l$ больше, то любая точка $S$ выше $l$ должна быть где-то левее средней точки; если наклон $l$ меньше, то любая точка выше $l$ должна быть правее средней точки.

Теперь вы уменьшили количество учитываемых точек до половины исходного размера. Действуйте по индукции.

$\endgroup$

1

$\begingroup$

Найдите выпуклую оболочку за O(nlogn) и для каждой точки на ней запомните наклон отрезка между ней и следующей на выпуклой оболочке. затем (они уже отсортированы) по любой строке l с наклоном m выполните двоичный поиск наклона в массиве наклонов. тогда вам нужно только проверить точку до и после m в массиве и определить, находятся ли они над линией.