news 2026/6/9 22:01:09

【C#】求目标Vector2向量与Vector2.Right方向上的夹角 θ

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【C#】求目标Vector2向量与Vector2.Right方向上的夹角 θ

第1步、求出 tan θ 的值

① 将目标向量归一化为 单位向量

② 将单位向量的 Y值 / X值,就能得到tan θ

知识点:通过观察单位圆上坐标点,能方便知道某角度的正弦余弦值 。

想象一个半径为1的圆,圆心在坐标原点(0,0)。

  1. 起点:从圆上最右边的点(1,0)开始。

  2. 旋转:从这个点开始,逆时针转动一个角度(比如30度、120度、400度都行)。停下来的位置,在圆上有一个点。

  3. 看坐标:这个停下来的点的坐标就是(cosθ, sinθ)

    • x坐标=cosθ(余弦)

    • y坐标=sinθ(正弦)


知识点:tanθ(正切) =sinθ / cosθ


第2步、分析 tan θ 的值,推算出 θ

Y = tanX 函数图

2.1 通过 Atan(反正切)求出 θ 是否可行?

从函数图可以看出:

C# 的Atan(反正切)函数 也确实也只返回一个数值,但这是因为:


2.2 正确的方法 Atan2 :

Atan2(y, x)直接根据点的直角坐标 (x, y)来计算该点与原点连线相对于正X轴的角度自动处理了所有象限和特殊边界情况

函数签名:

返回值单位

  • 返回的是弧度值

  • 如需角度,需要转换:角度 = 弧度 * 180 / π

  1. 为什么有atan2没有asin2/acos2

    • 因为tan(θ) = y/x中,比值y/x会完全丢失符号信息(例如 1/1 和 (-1)/(-1) 都是 1),无法判断象限。

    • sin(θ) = y/rcos(θ) = x/r中,至少还能保留一个符号信息(y 或 x 的符号)。

  2. atan2的本质作用

    • 它是一个专门从直角坐标 (x, y) 计算角度的“完全版”函数。

    • 同时利用 x 和 y 的符号,直接给出正确象限的角度。

    • 范围是(-π, π],覆盖全方向。

  3. 其他反三角不需要“2”版本的原因

    • asin(y)acos(x)已经有明确的主值区间(分别是[-π/2, π/2][0, π])。

    • 它们丢失的信息可以用atan2完美替代,没必要再造新函数。

    • 实际上:asin(y/r)acos(x/r)经过象限调整后,结果就等于atan2(y, x)

一句话总结atan2是专门为“从坐标到角度”这个任务设计的终极工具,其他反三角函数通过主值区间已经足够定义,且都能用atan2替代实现。




版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/30 2:53:00

太强了!SpringBoot + QLExpress打造动态规则引擎!

作为一名后端开发,你是否遇到过这样的场景: 运营同学说:"双11活动规则临时调整,满300减60改成满200减50,能马上上线吗?" 产品经理说:"风控策略需要微调一下,这个规则…

作者头像 李华
网站建设 2026/5/31 11:21:42

基于Arduino智能家居环境监测系统

3 系统需求分析 3.1 可行性分析 3.1.1 技术可行性 分析实现基于 Arduino 智能家居环境监测系统所需技术是否成熟、可获取。比如 Arduino 平台开源且资料丰富,有大量现成的函数库可调用,像读取传感器数据、控制执行设备等功能都有成熟实现方式&#xf…

作者头像 李华
网站建设 2026/6/7 13:08:07

失落的乡土:《阿凡达》与《乡土中国》的跨时空深度对话

失落的乡土:《阿凡达》与《乡土中国》的跨时空深度对话 在詹姆斯卡梅隆的《阿凡达》中,潘多拉星球上那片荧光闪烁、万物互联的雨林,常被视作一个纯粹的幻想乌托邦。然而,若将这部科幻巨制与费孝通先生1947年写就的社会学经典《乡…

作者头像 李华
网站建设 2026/5/31 13:33:55

解锁飞行焊接:电芯顶盖封口的高效与精准密码

飞行焊接技术原理剖析 在电芯顶盖封口工艺的不断演进中,飞行焊接技术崭露头角,成为提升生产效率与焊接质量的关键力量。飞行焊接,又称激光飞行焊接(Laser Fly Welding),其核心在于打破了传统逐点焊接的效率瓶颈,实现了 “边移动边焊接” 的创新模式。 传统的焊接方式,…

作者头像 李华
网站建设 2026/5/30 9:18:08

Python+hadoop+spark商品数据分析及预测系统 机器学习 预测算法预测销量

1、项目介绍 技术栈:python语言、Django框架、Echarts可视化、机器学习随机森林预测算法预测销量、爬虫、HTML Python 商品数据分析及预测系统介绍 本 Python 商品数据分析及预测系统,以 Python 语言为开发核心,依托 Django 框架搭建稳定后端…

作者头像 李华