Math 找到一条形成角度的线θ;用一条已知的线
我有一条从(a,b)到(x,y)的线,我想画一条从(x,y)开始的线,长度为ℓ, 与原始直线成θ角 如何计算这条新线端点的坐标?见下图:Math 找到一条形成角度的线θ;用一条已知的线,math,geometry,Math,Geometry,我有一条从(a,b)到(x,y)的线,我想画一条从(x,y)开始的线,长度为ℓ, 与原始直线成θ角 如何计算这条新线端点的坐标?见下图: 好的,在大量的涂鸦之后,我想到了这个: 虚线表示平行于x轴和y轴的线 m=x− a n=y− b α=tan−1(不适用) β=α− θ p=ℓ cosβ q=ℓ sinβ c=x+p d=y+q好的,在大量的涂鸦之后,我想到了这个: 虚线表示平行于x轴和y轴的线 m=x− a n=y− b α=tan−1(不适用) β=α− θ p=ℓ cosβ q=ℓ
好的,在大量的涂鸦之后,我想到了这个: 虚线表示平行于x轴和y轴的线 m=x− a n=y− b α=tan−1(不适用) β=α− θ p=ℓ cosβ q=ℓ sinβ c=x+p
d=y+q好的,在大量的涂鸦之后,我想到了这个: 虚线表示平行于x轴和y轴的线 m=x− a n=y− b α=tan−1(不适用) β=α− θ p=ℓ cosβ q=ℓ sinβ c=x+p
d=y+q对于这类问题,使用向量代数几乎总是比笛卡尔坐标更简单。让我们从标记点开始: 设R(θ)为逆时针旋转θ弧度的矩阵: 然后计算: v=B− A(从A到B的向量) v=v/v|(沿v方向的单位向量) ŵ=R(−θ) v̂(沿BC方向的单位向量;你的旋转是顺时针的,所以我们需要R(−θ) 这里不是R(θ)) w=ℓ ŵ(长度向量ℓ 在BC的方向) C=B+w 这种方法避免了计算反正切的需要,这需要一些小心(如果天真地计算,当B垂直高于或低于A时,它会遇到麻烦;但是大多数语言都有类似
atan2
的函数来处理这种情况)
在任何带有向量库的合理编程语言中,您都应该能够将其作为一行程序编写,可能如下所示:
C = B + (B - A).unit().rotate(-theta) * l
对于这类事情,使用向量代数几乎总是比笛卡尔坐标更简单。让我们从标记点开始: 设R(θ)为逆时针旋转θ弧度的矩阵: 然后计算: v=B− A(从A到B的向量) v=v/v|(沿v方向的单位向量) ŵ=R(−θ) v̂(沿BC方向的单位向量;你的旋转是顺时针的,所以我们需要R(−θ) 这里不是R(θ)) w=ℓ ŵ(长度向量ℓ 在BC的方向) C=B+w 这种方法避免了计算反正切的需要,这需要一些小心(如果天真地计算,当B垂直高于或低于A时,它会遇到麻烦;但是大多数语言都有类似
atan2
的函数来处理这种情况)
在任何带有向量库的合理编程语言中,您都应该能够将其作为一行程序编写,可能如下所示:
C = B + (B - A).unit().rotate(-theta) * l
你能算出第一条线和y轴之间的角度吗?如果你知道的话,你能算出未知的坐标吗?你能算出第一条线和y轴之间的角度吗?如果你知道,你能计算出未知的坐标吗?谢谢你的编辑。你用什么来创作这幅图?谢谢你的编辑。你用什么来创作这幅图?谢谢