|
|
请马上登录,朋友们都在花潮里等着你哦:)
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 马黑黑 于 2022-8-29 12:50 编辑
atan2 函数将指定的直角坐标(x,y)转换为极坐标(r,θ),并返回弧度θ。换言之,该方法通过计算 y/x 的反正切值来计算弧度θ。
举例说明:针对一个矩形元素,设(x,y)为该元素上的任意一个点,则该点的弧度 θ 为:
θ = atan2(y,x)
改装上述式子,求得(x,y)点的角度,则:
a = atan2(y,x)* 180 / π
上式 a 所得到的是以矩形左上角(0,0)为基点,(x,y)与(0,0)连线后与矩形的上边线所形成的夹角。
依此推算,矩形上的任意一个坐标点,通过 atan2 函数所获得的与矩形上边线形成的夹角是基于始坐标(0,0)的夹角,最大角度为 90 度。现实应用中,例如我们要做一个圆环可控进度,我们需要 360 度,所以,我们需要移动始坐标即夹角的基点到矩形的中心来,这样能将矩形一分为四,90 * 4 = 360。这时,弧度 θ求值式子为(假设矩形尺寸为200*200):
θ = atan2(y - 100,x - 100)
变换为夹角 a 的求值式子则是:
a = atan2(y - 100,x - 100)* 180 / π
这个时候,夹角 a 的值出现怪异的现象:矩形的右上区域和左上区域,即上半部分,获得的夹角都是负值。原理却不复杂:基点不再位于矩形的左上角坐标(0,0)处,而是移动到了(100,100)即矩形的中心点,也就是坐标系整体迁移了,矩形的上半部在横向坐标之上, atan2 计算其上的(x,y)弧度是逆向走向,故为负值,且负值的规律又与纵向坐标有关,即左上方区域和右上方的区域各有规律。
以上探索结果,可以用于制作圆环可控进度的示意器,详情请查看本栏目的另一个帖子:
进度可调+透明遮罩的圆环播放器 - 马黑黑教程专版 - 花潮论坛 - Powered by Discuz! (huachaowang.com)
|
评分
-
| 参与人数 2 | 威望 +80 |
金钱 +160 |
经验 +80 |
收起
理由
|
红影
| + 50 |
+ 100 |
+ 50 |
赞一个! |
加林森
| + 30 |
+ 60 |
+ 30 |
很给力! |
查看全部评分
|