gpt4 book ai didi

math - 将直线旋转给定角度

转载 作者:行者123 更新时间:2023-12-05 02:22:49 25 4
gpt4 key购买 nike

给定直线 A、B 和 C 的系数。

Ax + By + C = 0

我希望以顺时针或逆时针方向按角度旋转线,例如 x。我怎样才能做到这一点,以便获得新的系数?(在 NetLogo 中)

编辑:抱歉,将点视为 x_0 和 y_0

最佳答案

你的线方程

x * A + y * B + C = 0

可能出现在 normal form 中作为

x * Cos(Theta) + y * Sin(Theta) - p = 0

在哪里

Theta = ArcTan(B/A)
- OX 轴与法线坐标原点到直线的夹角

p = -C/Sqrt(A^2 + B^2) -
从原点到线的距离(正常长度)。

如果你想将直线相对于坐标原点 (0,0) 旋转角度 Alpha,只需创建新方程(注意相同的 p 值): 贝塔 = 西塔 + 阿尔法

x * Cos(Beta) + y * Sin(Beta) - p = 0

如果你想绕任意点 (x0, y0) 旋转直线:从这一点到直线的正常距离是

d = x0 * Cos(Theta) + y0 * Sin(Theta) - p

新方程将

x * Cos(Beta) + y * Sin(Beta) - pnew = 0

并保持正常距离:

d = x0 * Cos(Beta) + y0 * Sin(Beta) - pnew

所以

pnew = p + x0 * (Cos(Beta)-Cos(Theta)) + y0 * (Sin(Beta)-Sin(Theta))

关于math - 将直线旋转给定角度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27442437/

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