首页 > 其他分享 >Unity 计算圆的切点

Unity 计算圆的切点

时间:2023-11-11 19:11:53浏览次数:28  
标签:Vector3 center point float 切点 Unity 计算 dis

    /// <summary>
    /// 计算过圆外一点的切点,在圆上的切点
    /// </summary>
    /// <param name="center"></param>
    /// <param name="radius"></param>
    /// <param name="point"></param>
    /// <param name="tanPoint1"></param>
    /// <param name="tanPoint2"></param>
    /// <returns></returns>
    public static bool GetTangentPoint(Vector3 center, float radius, Vector3 point, out Vector3 tanPoint1, out Vector3 tanPoint2)
    {
        float dis = Vector3.Distance(center, point);
        if (dis <= 0 || radius < 0 || dis < radius)
        {
            //点必须在圆的外部
            tanPoint1 = point;
            tanPoint2 = point;
            return false;
        }
        float acos = Mathf.Acos(radius / dis) * Mathf.Rad2Deg;//根据余弦求出角度
        Vector3 dir = point - center;

        //绕着Y轴旋转向量,模长是半径,得到的点就是切点
        tanPoint1 = (Quaternion.Euler(0, acos, 0) * dir).normalized * radius + center;
        tanPoint2 = (Quaternion.Euler(0, -acos, 0) * dir).normalized * radius + center;
        return true;
    }

 

标签:Vector3,center,point,float,切点,Unity,计算,dis
From: https://www.cnblogs.com/Jason-c/p/17826196.html

相关文章

  • 2023-2024-1 20231406 《计算机基础与程序设计》第七周学习总结
    2023-2024-120231406《计算机基础与程序设计》第七周学习总结作业信息这个作业属于哪个课程([2023-2024-1-计算机基础与程序设计](https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP)这个作业要求在哪里(2023-2024-1计算机基础与程序设计第七周作业这个作业......
  • 基于SpringBoot的来访管理系统的设计与实现-计算机毕业设计源码+LW文档
    摘 要本文首先实现了来访管理技术的发展,随后依照传统的软件开发流程,最先为系统挑选适用的言语和软件开发平台,依据需求分析开展控制模块制作和数据库查询构造设计,依据系统整体功能模块的设计,制作系统的功能模块图、流程表和E-R图。其次进行设计框架,依据设计的框架撰写编码,完成系......
  • 基于springboot的旅游出行指南-计算机毕业设计源码+LW文档
    摘 要随着社会的发展,旅游出行的管理形势越来越严峻。越来越多的用户利用互联网获得信息,但旅游出行信息鱼龙混杂,信息真假难以辨别。为了方便用户更好的获得本旅游出行信息,因此,设计一种安全高效的旅游出行指南极为重要。为设计一个安全便捷,并且使用户更好获取本旅游出行信息,本文......
  • 首先赋值操作符(=)的优先级小于三元操作符的优先级,所以先计算三元操作符的部分
    三元操作,哪个语法是正确的?Avarx=y=true?”true”:”false”;Bvarx=y=true:”true”?”false”;Cvarx=(y=true):”true”?”false”;Dvarx=(y=true){“true”:”false”};正确答案:A首先赋值操作符(=)的优先级小于三元操作符的优先级,所以先计算三元操作符的部分,三元操作......
  • 计算机内存笔记
    本文作为一个笔记,复习一下计算内存相关知识,主要是参考:合集·CSAPP-深入理解计算机系统下面说一下储存器部分,当前计算机的储存有这么几种,寄存器是最快的,其次是几级缓存,最后是内存,从硬盘中拿数据是最慢的先说一下主要的两种内存:SRAM和DRAM他们的原理分别是:1、SRAM将每个bit......
  • 2023-2024-1 20231410刘珈岐 《计算机基础与程序设计》第7周学习总结
    2023-2024-120231410刘珈岐《计算机基础与程序设计》第7周学习总结作业信息这个作业属于哪个课程<班级的链接>(https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP)这个作业要求在哪里<作业要求的链接>(https://www.cnblogs.com/rocedu/p/9577842.html#WEEK07......
  • 2023-2024-1-20231317 计算机基础与程序设计第七周学习总结
    这个作业属于哪个课程<班级的链接>(如2022-2023-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(如2022-2023-1计算机基础与程序设计第七周作业)这个作业的目标<《计算机科学概论第8章》《C语言程序设计第6章》>作业正文https://www.cnblogs.com/Ter......
  • 2023-2024-1 20231327《计算机基础与程序设计》第7周学习总结
    学期(2023-2024-1)学号(20231327)《计算机基础与程序设计》第7周学习总结作业信息课程<班级的链接>(2023-2024-1-计算机基础与程序设计)要求<作业要求的链接>(2023-2024-1计算机基础与程序设计第7周作业)目标<了解并使用循环结构>作业正文https://i.cnblogs.com/p......
  • 2023-2024-1 20231302 《计算机基础与程序设计》第七周学习总结
    作业信息这个作业属于哪个课程2023-2024-1-计算机基础与程序设计这个作业要求在哪里2023-2024-1计算机基础与程序设计第七周作业这个作业的目标数组与链表、基于数组和基于链表实现数据结构、无序表与有序表、树、图、子程序与参数作业正文https://www.cnblogs......
  • 2023-2024-1 20231416《计算机基础与程序设计》第7周学习总结
    作业信息这个作业属于哪个课程(https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP)这个作业要求在哪里https://www.cnblogs.com/rocedu/p/9577842.html#WEEK07这个作业的目标《计算机科学概论》第8章《C语言程序设计》第6章作业正文 https://www.cnblo......