求向量的三角函数 sin 或 cos 的值,已知两个点,求两点相连线段角度

在 WPF 或 UWP 中,可以通过两个点的减法获取向量

Vector vector = p1 - p2;

求向量的三角函数 sin 或 cos 的值,可以使用如下代码

    static class VectorExtensions
    {
        /// <summary>
        /// 获取向量的 cos(θ)值
        /// </summary>
        /// <param name="vector"></param>
        /// <returns></returns>
        public static double GetCos(this Vector vector)
            => vector.Y / vector.Length;

        /// <summary>
        /// 获取向量的 sin(θ)值
        /// </summary>
        /// <param name="vector"></param>
        /// <returns></returns>
        public static double GetSin(this Vector vector)
            => vector.X / vector.Length;
    }

通过反三角函数可以获取弧度值

            var cosθ = vector.GetCos();
            var sinθ = vector.GetSin();

            var 弧度 = Math.Acos(cosθ);

从弧度转换角度,可以使用以下方法转换

var 角度 = 弧度 / Math.PI * 180;

此时比较不推荐使用 tan 这个三角函数,因为也许会出现除以零的问题

更多请看 WPF 基础 2D 图形学知识


本文会经常更新,请阅读原文: https://blog.lindexi.com/post/WPF-%E5%9F%BA%E7%A1%80-2D-%E5%9B%BE%E5%BD%A2%E5%AD%A6%E7%9F%A5%E8%AF%86-%E6%B1%82%E5%90%91%E9%87%8F%E6%97%8B%E8%BD%AC%E8%A7%92%E5%BA%A6.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

如果你想持续阅读我的最新博客,请点击 RSS 订阅,推荐使用RSS Stalker订阅博客,或者收藏我的博客导航

知识共享许可协议 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接: https://blog.lindexi.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系

微软最具价值专家


无盈利,不卖课,做纯粹的技术博客

以下是广告时间

推荐关注 Edi.Wang 的公众号

欢迎进入 Eleven 老师组建的 .NET 社区

以上广告全是友情推广,无盈利