【Unity】常用几何知识:根据角度获取圆形上某个点的坐标

文章目录

  • 根据角度获取圆形上某个点的坐标
  • 示例:动态改变按钮位置
    • 最终效果


根据角度获取圆形上某个点的坐标

圆上某个点坐标的计算公式:

  x = c e n t e r X + r a d i u s ∗ c o s ( a n g l e ∗ P I / 180 ) \ x = centerX + radius * cos(angle * PI / 180)  x=centerX+radiuscos(anglePI/180)
  y = c e n t e r Y + r a d i u s ∗ s i n ( a n g l e ∗ P I / 180 ) \ y = centerY + radius * sin(angle * PI / 180)  y=centerY+radiussin(anglePI/180)

centerX centerY 圆的中心点
radius:半径
angle:旋转角度(起始方向为 3 点钟方向)

示例:动态改变按钮位置

本案例将按钮的位置设计成围绕着生成器旋转排列。当按钮数量为 3 时,就每隔 120° 放一个按钮,当按钮数量为 4 时,就隔 90° 。

代码示意:

		// 根据防御塔数量决定按钮的旋转角度
        for (int i = 0; i < _createBtnList.Count; i++)
        {
            // 计算旋转角度
            float angle = 360 / _createBtnList.Count * i + 90;
            // 使用公式算出按钮坐标
            //x = centerX + radius * cos(angle * 3.14 / 180)
            //y = centerY + radius * sin(angle * 3.14 / 180)
            _createBtnList[i].position = new Vector3(100 * Mathf.Cos(angle * Mathf.PI / 180), 100 * Mathf.Sin(angle * Mathf.PI / 180), 0);
        }

通过遍历按钮列表 List _createBtnList ,计算每个按钮的旋转角度,再根据角度计算出按钮的坐标。最后再给这个角度增加90°,让起始坐标从 3 点钟方向变为 12 点钟方向。

最终效果

【Unity】常用几何知识:根据角度获取圆形上某个点的坐标_第1张图片


更多内容请查看总目录【Unity】Unity学习笔记目录整理

你可能感兴趣的:(Unity,Unity后端开发,游戏开发实例,unity,游戏引擎,圆上的点,坐标计算,游戏开发)