2017-02-16 4 views
1

Есть ли простой способ сделать это.iOS - Как получить CGPoint на заданном расстоянии вдоль линии?

У меня есть CGPoint pointA (10, 10) и еще CGPoint pointB (15, 8). Мне нужно получить CGPoint, который находится на той же линии, что и один, соединяющий A и B, и на определенном расстоянии (скажем, 2) до точки A.

Я попытался оглянуться на любую векторную структуру. Есть что-то, что называется CGVector, но это кажется бесполезным здесь.

+1

Этот вопрос я думаю, simliar это: HTTP: //stackoverflow.com/questions/2969181/moving-cgpoint-a-certain-distance-along-a-certain-heading-iphone и должен помочь вам решить вашу проблему. –

+2

@ Снег, я уверен, что это похоже на этот вопрос и вопрос, который вы опубликовали http://math.stackexchange.com/questions/175896/finding-a-point-along-a-line-a-certain-distance-away -из другой точки – KrishnaCA

+0

@ KrishnaCA Да, я тоже это видел, хорошо, чтобы связать его тоже gj. –

ответ

1

Это можно сделать так:

Допущение: Направление линии от головы: (point2) хвост: (point1)

- (CGPoint)getPointFromLineConnecting:(CGPoint)point1 andPoint2:(CGPoint)point2 withDistanceFromPoint1:(CGFloat)dist { 

    // distance between connecting points 
    CGFloat distance = sqrtf(powf(point1.x-point2.x, 2) + powf(point1.y-point2.y, 2)); 

    // unit vector point: v = (x1-x0)i/distance + (y1-y0)j/distance 
    CGPoint unitVectorPoint = CGPointMake((point2.x - point1.x)/distance, (point2.y - point1.y)/distance); 

    // resultant point at a distance d from p1 
    CGPoint resultPoint = CGPointMake((point1.x+dist*unitVectorPoint.x), (point1.y+dist*unitVectorPoint.y)); 

    return resultPoint; 
} 
+1

@ Прошу прощения, я перепроверил его и решил проблему. Я считаю, что теперь должно отлично работать – KrishnaCA

+0

Довольно близко. Единственное предположение в приведенном выше фрагменте кода состоит в том, что его восходящая линия. Но я могу понять эту часть. Вернется и отметит это как ответ, если не предложит что-то еще лучше. – OutOnAWeekend

+0

@AnandKumar, я считаю, что отредактированный ответ удовлетворяет всем условиям – KrishnaCA