Vec1 =圆心,Vec2 = mousepos,找到Vec1,Vec2之间圆上的点

时间:2014-09-18 00:38:02

标签: vector rotation geometry 2d

我有两个向量:一个位于圆的中心,另一个位于鼠标位置。我想找到两个向量之间的圆上的点。

我特别想要圆心+直径的答案,而不是三角学。因此,圆心+圆直径(在方向上)鼠标位置。

如果有帮助,请考虑时钟。我需要'数字'的向量协调。 '手'指着。手总是指向变量向量的鼠标位置'。

我想要'(vec2d_X)在时钟'中间的圆圈上。 (vec2d_1)和'鼠标位置'(vec2d_2)。

另见后续问题:
Determine rotation direction /toward/ variable point on a circle

编辑>>>>>>

使用trig更快?

#Python
def circlepoint_trig(vertex, mousepos, circlepoint):
    angle = math.atan2(mousepos[1] - vertex[1], mousepos[0] - vertex[0])
    myx = 80 * math.cos(angle) #80 is length of clock 'hand'
    myy = 80 * math.sin(angle) #80 is length of clock 'hand'
    circlepoint = vec2d(myx,myy) + vertex
    return circlepoint

1 个答案:

答案 0 :(得分:1)

radius_vector = mouse_position - circle_center

normalized_vector = radius_vector * circle_radius / radius_vector.length()

circle_point = circle_center + normalized_vector

澄清:

vector.length=sqrt(vector.x*vector.x+vector.y*vector.y)