我将一个线段定义为起点和终点。
L = [(x1, y1), (x2, y2)]
所以
(x1, y1) (x2, y2)
L: A-------------------------------B
我现在希望通过拉开这两点来延长线
a a
L: A'--------A-------------------------------B-----------B'
所以我需要更新点A
和B
的坐标。
假设A'A = B'B = a
如何在Python中完成?
This question可能非常相关,但我的主要关注的是执行任务的算法,而不是在图中将其可视化。
答案 0 :(得分:2)
使用矢量数学:
B = A + v
where
v = B - A = (x2-x1, y2-y1)
||v|| = sqrt((x2-x1)^2 + (y2-y1)^2)
The normalized vector v^ with ||v^|| = 1 is: v^ = v / ||v||
To get the values of A' and B' you can now use the direction
of v^ and the length of a:
B' = B + a * v^
A' = A - a * v^