欢迎光临散文网 会员登陆 & 注册

Unity已知一角度,一边长度 拿到所有三角形所有点位和坐标

2023-03-23 22:46 作者:江湖陈伟霆  | 我要投稿


//代码如下可以复制玩一玩

private void Demo3()

    {

        //先获取距离原点向右偏移30° 长度为十米的坐标点    transform.TransformPoint(0, 0, 10)

        transform.eulerAngles = new Vector3(0, 30, 0);

     

        float ac = new Vector3(5.0f, 0.0f, 8.7f).magnitude;   //这个模长=10

        Debug.Log(ac);


        //做bc辅助线     ac垂直与bc     根据sin公式  对边/斜边     所以对边 bc= 斜边*sin30° 

        float bc = Mathf.Sin(Mathf.Deg2Rad * (30)) * new Vector3(5.0f, 0.0f, 8.7f).magnitude;

        print(bc);


        //再根据直角三角形公式 a²+b²=c²   ab也能得出

        float ab = Mathf.Sqrt(Mathf.Pow(ac, 2) - Mathf.Pow(bc, 2));

        print(ab);


        //在把旋转角度转回来

        transform.eulerAngles = new Vector3(0, 0, 0);


        Vector3 c = new Vector3(5.0f, 0.0f, 8.7f);

        Vector3 b = transform.TransformPoint(new Vector3(0, 0, 8.6f));

        Vector3 a = transform.position;


        Debug.DrawLine(a, c, Color.red);  //a-c

        Debug.DrawLine(a, b, Color.green);// a-b

        Debug.DrawLine(c, b, Color.blue);   ///c-b

    }


Unity已知一角度,一边长度 拿到所有三角形所有点位和坐标的评论 (共 条)

分享到微博请遵守国家法律