이 작업을 수행하는 쉬운 방법이 있습니까?
나는이 CGPoint
pointA (10, 10)와 또 다른 CGPoint
pointB (15, 8). 나는 CGPoint
A와 B를 연결하는 선과 같은 선에 있고 점 A 이전에 특정 거리 (예 : 2)에있는 a를 가져와야합니다.
벡터 기반 구조체를 둘러 보았습니다. 라는 CGVector
것이 있지만 여기에서는 꽤 쓸모없는 것 같습니다.
다음과 같이 할 수 있습니다.
가정 : 선의 방향은 머리 :( 점 2) 꼬리 :( 점 1)
- (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;
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다