我试图找到一种方法,一个特定的距离延长线段。例如,如果我有一个从10,10开始延伸到20,13的线段,并且我希望将长度延长3,那么我如何计算新的端点。我在这个例子10.44,所以如果我想知道从10,10与13.44长度会是什么计算以最快的方式将新的端点获得通过的sqrt(一^ 2 + B^2)的长度是多少?我也知道斜坡,但不知道在这种情况下是否能帮助我。延长线段特定距离
延长线段特定距离
回答
可以通过找到你的线段的单位矢量做到这一点,将其缩放到所需的长度,然后翻译用该载体您的线段的端点。假设你的线段的端点是A
和B
,你想终点B
后,延长(与lenAB
是线段的长度)。
#include <math.h> // Needed for pow and sqrt.
struct Point
{
double x;
double y;
}
...
struct Point A, B, C;
double lenAB;
...
lenAB = sqrt(pow(A.x - B.x, 2.0) + pow(A.y - B.y, 2.0));
C.x = B.x + (B.x - A.x)/lenAB * length;
C.y = B.y + (B.y - A.y)/lenAB * length;
如果你已经有了,你可以计算出新点的斜率:我有一段时间没有这样做
x = old_x + length * cos(alpha);
y = old_y + length * sin(alpha);
所以把它当作一粒盐。
其中alpha = atan2(y-old_y,x-old_x) –
感谢您的帮助,此解决方案似乎比较低的解决方案稍慢。我感谢帮助,这也有效。 – goodgulf
我只是在这个偶然发现自己寻找此之后,并给你一个彻头彻尾的现成的解决方案,你可以看看标准Vector类中的代码(任何语言)和樱桃选择你需要的部分,但我最终使用一个,代码如下所示:
vector.set(x,y);
vector.normalize();
vector.multiply(10000);// scale it by the amount that you want
祝你好运!
我认为这是最优雅的答案 –
- 1. 特定距离内的点
- 2. 距离某一点的线段距离上的点
- 3. 直线上的特定距离上的点C
- 4. 使用MapKit生成一条具有特定距离的路线
- 5. 具有确定距离的空间线
- 6. 与延长片段
- 7. 选择特定距离内的点
- 8. 在特定距离抛出物品
- 9. 确定距离
- 10. 如何通过Haversine计算短距离和长距离?
- 11. 在jQuery中为长距离短距离设置动画位置
- 12. 序言,对角线距离
- 13. PHP计算距离 - 在线
- 14. 显示路线的距离
- 15. 计算距离边线
- 16. 如何找到距离线段指定距离的标题上的第一个点?
- 17. 指向大圆段距离
- 18. 你如何找到距离某条线的给定垂直距离上的点?
- 19. 按特定距离查找距离目标位置最近的位置
- 20. 确定距离MySQL
- 21. 远离其他人输入特定的距离
- 22. 延长轴线上oxyplot
- 23. Python:计算点距离N的距离尺寸线
- 24. 找到距离get.shortest.paths()的路线的距离
- 25. 使用地理位置确定距离固定点的距离
- 26. Igraph:获取最长的测地距离
- 27. 向长/纬e6添加metresc距离
- 28. 距离Cell塔的距离
- 29. 如何在GLSL中实现从点到线段的距离?
- 30. 三维点到多义线段算法的距离
这不是一个编程问题,但简单的数学,这你就必须扩大你的代码。 – Constantinius
@Constantinius它仍然是一个算法问题,只是一个基于数学(计算机科学是非常沉重的)。 – corsiKa
@glowcoder:我不同意。如果不了解下面的数学问题,他就没有任何问题可以解决他的任务。另一方面,如果他熟悉数学,将它翻译成程序代码是一项微不足道的任务。 – Constantinius