gpt4 book ai didi

algorithm - 如何在 Python 中扩展线段?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:51:29 25 4
gpt4 key购买 nike

我有一条线段定义为其起点和终点。

L = [(x1, y1), (x2, y2)] 

所以

               (x1, y1)                       (x2, y2)
L: A-------------------------------B

我现在希望通过像这样拉开这两点来延长线

              a                                         a
L: A'--------A-------------------------------B-----------B'

所以我需要更新点AB的坐标。

假设 A'A = B'B = a

如何用 Python 实现?

This question可能非常相关,但我主要关注完成任务的算法,而不是在图中将其可视化。

最佳答案

使用矢量数学:

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^

关于algorithm - 如何在 Python 中扩展线段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19336778/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com