如何在一条线的path上find一个点
我有两个点之间即时绘制一条线( x1,y1
和x2,y2
),但我需要知道x3,y3
坐标是gapSize
离点x2,y2
。 关于如何解决这个问题的任何想法(程序是用Objective-C编写的,如果有帮助的话)?
您可以简单地以弧度计算angular度
double rads = atan2(y2 - y1, x2 - x1);
那么你得到的坐标如下:
double x3 = x2 + gapSize * cos(rads); double y3 = y2 + gapSize * sin(rads);
这是你的意思吗?
计算P1和P2之间的距离: d=sqrt( (y2-y1)^2 + (x2-x1)^2)
那么x2 = (d*x1 + gapSize*x3) / (d+gapSize)
所以x3 = (x2 * (d+gapSize) - d*x1) / gapSize
类似地, y3 = (y2 * (d+gapSize) - d*y1) / gapSize
对math抱歉。 我没有尝试编码,但它听起来是正确的。 我希望这有帮助。
有很多方法可以做到这一点。 最简单的(对我来说)如下。 我会用math来写,因为我甚至拼不出来。
因此,我们希望find点C = {x3,y3},给定点A = {x1,y1}和B = {x2,y2}。
点之间的距离是
d = ||BA|| = sqrt((x2-x1)^2 + (y2-y1)^2)
指向这条线的单位vector由下式给出
V = (B - A)/d = {(x2 - x1)/d, (y2-y1)/d}
一个新的点位于gapSize与B的距离上,在这个单位向量的方向上
C = B + V*gapSize = {x2 + gapSize*(x2 - x1)/d, y2 + gapSize*(y2 - y1)/d}
- CoreData和RestKit的性能,同时导入非常大的数据集
- 您可以在不越狱的情况下在设备上下载Cydia For iOS 12.2吗?
- 如何将我的swift 1.2项目迁移到2.0?
- Swift iOS访谈:关于闭包和功能的所有信息
- iPad中的例外,UIImagePickerController必须通过UIPopoverController呈现
- UNLocationNotificationTrigger-不在模拟器中工作
- 多个NSThreads同步
- 将UITableView转换成UIImageView
- 我怎样才能解密在iOS的XML文件与AES / CBC / PKCS5Padding标准,在Android的文件已被解密,所有的关键像盐,IV