Region from to Where
====================================================================
1 -arctan(b/a) +arctan(b/a) Right green triangle
2 +arctan(b/a) π-arctan(b/a) Upper yellow triangle
3 π-arctan(b/a) π+arctan(b/a) Left green triangle
4 π+arctan(b/a) -arctan(b/a) Lower yellow triangle
好的,呼!我终于找到了这个。
注意:我是根据贝利萨里奥斯令人敬畏的回答得出这个结论的。如果你喜欢这个,也请喜欢他的。我所做的就是把他说的变成代码。
这是Objective-C的外观,它应该足够简单,可以转换成您最喜欢的语言。
另外,这里有一个我创建的小测试视图来验证它是否有效。创建此视图并将其放置在某个位置,它将使另一个小视图围绕边缘快速移动。
让我们调用矩形边和矩形中心的坐标。
有四个地区需要考虑:
通过一点三角函数,我们可以得到每个区域中所需交点的坐标。
因此Z0是区域1和3的交点的表达式
并且Z1是区域2和区域4的交点的表达式
所需的线从(X0,Y0)传递到Z0或Z1,具体取决于区域。记住Tan(φ)=Sin(φ)/Cos(φ)
只要注意每个象限中Tan(φ)的符号,并且角度总是从正x轴逆时针方向测量。
啊!
Javascript版本:
相关问题 更多 >
编程相关推荐