Как я могу нарисовать линию через точку или точку, где линия всегда одинаковой длины (iPhone app dev) - PullRequest
0 голосов
/ 09 июля 2010

У меня есть круговой график с радиальным курсором на нем, и курсор перемещается туда, где вы касаетесь экрана iPhone, но мне нужно, чтобы курсор оставался такой же длины, даже если касание происходит близко к началу координат график или вне графика. Я понятия не имею, как это сделать. Любая помощь будет принята с благодарностью

Ответы [ 2 ]

0 голосов
/ 09 июля 2010

Я не знаком с этими методами, но CGContextAddLineToPoint должен работать с техникой @ eruciform, если вы найдете подходящую точку на основе угла.

angle = arctan ((y2 - y1) / (x2 - x1))

x = cos (угол) * длина

y = sin (угол) * длина

И нарисуйте линию от (x1, y1) до(x, y).

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

исходная длина = sqrt ((y2 - y1) ^ 2 + (x2 - x1) ^ 2)

коэффициент = желаемая длина / исходная длина

x = ((x2 - x1) * коэффициент) + x1 y = ((y2 - y1) * ratio) + y1

Снова проведите линию от (x1, y1) до (x, y).

0 голосов
/ 09 июля 2010

Определите угол между тем местом, где вы хотите, чтобы линия начиналась, и конечной точкой, затем нарисуйте линию любой длины, которая вам нравится, начиная с начальной точки и доходя до той длины, на которой вы хотите длину?Или я неправильно понял вопрос?

арктангенс ((y2-y1) / (x2-x1))

...