Как рисовать линию с учетом центральной точки и угла в iOS?

Это вопрос iOS, так как это моя текущая неспособность выполнять координатную геометрию. Учитывая, что CGPoint действует как точка, через которую проходит линия, и угол в радианах. Как рисовать линию, проходящую через границы экрана (бесконечная линия)?

Я использую Quartz2d для этого, и API для создания строки ограничивается двумя точками ввода. Итак, как мне преобразовать точку и угол в две точки на границах устройства iOS?

Это начинается с простой тригонометрии. Вам нужно вычислить координату x и y второй точки. С началом 0,0 и обработкой линии, которая идет прямо вправо на 0 градусов и идет против часовой стрелки (против некоторых из вас против часовой стрелки), вы делаете:

double angle = ... // angle in radians double newX = cos(angle); double newY = sin(angle); 

Это предполагает радиус 1. Умножьте каждый раз желаемый радиус. Выберите число, которое будет больше, чем экран, например 480 для iPhone или 1024 для iPad (если вам нужны точки, а не пиксели).

Затем добавьте исходную точку, чтобы получить конечную точку.

Предполагая, что у вас есть CGPoint start , double angle и длина, ваша конечная точка:

 double endX = cos(angle) * length + start.x; double endY = sin(angle) * length + start.y; CGPoint end = CGPointMake(endX, endY); 

Это нормально, если конечная точка выключена.

  • Поиск координат касания жестов с использованием locationOfTouch
  • Можно ли получить координаты x и y прикосновения?
  • Проблема добавления значения широты и долготы
  • Доступ к существующему UITableViewCell
  • Получение вертикальной позиции курсора (курсора) в UIWebView
  • Как получить координаты буферного полигона (широта и долгота) в iOS?
  • Преобразование долготы / широты в x / y на iPhone
  • Движение SKActionTo поднимается, когда должно опускаться
  • Давайте будем гением компьютера.