作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有没有简单的方法来做到这一点。
我有一个 CGPoint
pointA (10, 10) 和另一个 CGPoint
pointB (15, 8)。我需要得到一个 CGPoint
,它与连接 A 和 B 的线在同一条线上,并且在 A 点之前一定距离(比如 2)处。
我试着四处寻找任何基于矢量的结构。有一个叫做 CGVector
的东西,但它在这里似乎没什么用。
最佳答案
可以这样做:
假设:线的方向是从head:(point2) tail:(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;
}
关于iOS - 如何获取沿线指定距离的 CGPoint?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42275166/
我是一名优秀的程序员,十分优秀!