我在屏幕上有两个同心圆,我想让内侧的圆圈四处移动,同时用户将手指拖到较大圆圈的外侧。这意味着我有两个点,较大圆圈的中心和用户触摸的点。如何计算较小圆圈的中心位置?
答案 0 :(得分:3)
好的,如果你画的是人眼,那就完全不同了。
如果我们从以下值开始
re
:眼睛的半径rp
:瞳孔的半径p1 = (x1, y1)
:坐标
眼睛的中心p2 = (x2, y2)
:坐标
用户触摸v1 = [x3; y3]
:p1
和p2
之间的方向向量。
x3 = (x1 - x2)
y3 = (y1 - y2)
l = sqrt((x3)^2 + (y3)^2)
:v1
然后执行以下步骤
re - rp
内触摸(即l < (re - rp)
),他/她是否在p2
画出瞳孔并且不再做。< / LI>
x
坐标(re - rp) * x3 / l + x1
和y
坐标(re - rp) * y3 / l + y1
如果您有多只眼睛,只需重复其他眼睛的步骤。
我当然希望你能理解我的意思,如果你不是要求离开。
答案 1 :(得分:1)
我真的没有得到你要求的东西,试着更具体。内圈的中心应该在哪里?
它应该位于外圈中心和用户触摸点之间的中点吗?
在这种情况下,它非常简单。找到线的中间非常简单。如果您有坐标(x1, y1)
和(x2, y2)
。中点的x坐标为x1 + (x2 - x1) / 2
,y坐标为y1 + (y2 - y1) / 2
。
(我忽略了你提到的同心圆,因为它似乎不是你想要的。)