我需要通过围绕中心圆的固定范数向量移动一个点。 所以要做到这一点,我需要计算圆切线向量以应用于我的观点。
所以我知道p1坐标,圆半径和圆心,以及矢量范数d。我需要找到p2(=找到矢量v方向)。
我在图表上添加了一些我想要找到它的想法:p1' p1投射在圆圈上。 t是p1'中C的正切向量。
这应该很容易,但我在数学方面太弱,无法确定如何实现这一点。所以我想了解一下这个实现(语言不可知,javascript很酷)。
如果您还能让我了解如何顺时针和逆时针运动,那就太酷了。
编辑:获得此
let vx = cx - p1x,
vy = cy - p1y,
norm = Math.sqrt((vx * vx) + (vy * vy)),
p2x = p1x - (vy * d / norm),
p2y = p1y + (vx * d / norm);
但仍然存在一个怪癖:按时使用,这一点正在慢慢远离圆心,呈螺旋状。
答案 0 :(得分:1)
获取圆的矢量中心 - 点P1。让我们称这个向量 V1
切线向量' t'垂直于v1。如果v1 =(vx,vy)那么 t =( - vy,vx)。只需交换值和一个符号(我写的是-vy,它也可能是-vx,但不是两个-vy,-vx)。
设置一个方向或顺序只是使用t2 = -t1 =(vy,-vx)或(-vy,vx)
对于动作,你必须使用标准化(|| v || = 1)向量。