最近突然想到数学知识,一些公式也是忘记了,查阅了一下,就记录下来了。

上代码。新建工程,创建个MotionOfAnObject类,挂空物体或者摄像机上ok了。当然,你也可以用拖尾组件,做拖尾效果。也可以画圆、椭圆、双曲线。思路:用list把路过的点保存下来,可以把点连成线,可以自己尝试。

using UnityEngine;/** *  Writer:June* *  Date: 2019.06.26* *  Function:让物体做圆周运动、椭圆运动、双曲线运动* *  Remarks:圆的参数方程 x=a+r*cosθ y=b+r*sinθ(θ∈ [0,2π) ) (a,b) 为圆心坐标,r 为圆半径,θ 为参数,(x,y) 为经过点的坐标*          椭圆的参数方程 x=a*cosθ  y=b*sinθ(θ∈[0,2π)) a为长半轴长 b为短半轴长 θ为参数*          双曲线的参数方程 x =a*secθ (正割) y=b*tanθ a为实半轴长 b为虚半轴长 θ为参数    secθ (正割)即1/cosθ */public class MotionOfAnObject : MonoBehaviour
{/// <summary>/// 要移动的物体/// </summary>[Header("要移动的物体"), SerializeField]private GameObject go;/// <summary>/// 长轴长/// </summary>[Header("长轴长"), SerializeField]private float Ellipse_a;/// <summary>/// 短轴长/// </summary>[Header("短轴长"), SerializeField]private float Ellipse_b;/// <summary>/// 角度/// </summary>private float angle;/// <summary>/// 圆半径/// </summary>[Header("圆半径"), SerializeField]private float Circular_R;/// <summary>/// 原点/// </summary>[Header("原点"), SerializeField]private GameObject Point;/// <summary>/// 双曲线实轴/// </summary>[Header("双曲线实轴"), SerializeField]private float Hyperbola_a;/// <summary>/// 双曲线虚轴/// </summary>[Header("双曲线虚轴"), SerializeField]private float Hyperbola_b;private void Update(){//角度angle += Time.deltaTime / 50f;if (Input.GetKey(KeyCode.A)){//椭圆运动Move(Ellipse_X(Ellipse_a, angle), Ellipse_Y(Ellipse_b, angle));}if (Input.GetKey(KeyCode.S)){//圆运动Move(Circular_X(0, Circular_R, angle), Circular_Y(0, Circular_R, angle));}if (Input.GetKey(KeyCode.D)){//双曲线运动Move(Hyperbola_X(Hyperbola_a, angle), Hyperbola_Y(Hyperbola_b, angle));}}/// <summary>/// 移动/// </summary>/// <param name="x"></param>/// <param name="y"></param>private void Move(float x, float y){go.transform.position = new Vector3(x + Point.transform.position.x, y + Point.transform.position.y, 0);}/// <summary>/// 椭圆x坐标/// </summary>/// <param name="a">长半轴</param>/// <param name="angle"></param>/// <returns></returns>private float Ellipse_X(float a, float angle){return a * Mathf.Cos(angle * Mathf.Rad2Deg);}/// <summary>/// 椭圆y坐标/// </summary>/// <param name="b">短半轴</param>/// <param name="angle"></param>/// <returns></returns>private float Ellipse_Y(float b, float angle){return b * Mathf.Sin(angle * Mathf.Rad2Deg);}/// <summary>/// 圆x坐标/// </summary>/// <param name="a">圆心x坐标</param>/// <param name="r">半径</param>/// <param name="angle">角度</param>/// <returns></returns>private float Circular_X(float a, float r, float angle){return (a + r * Mathf.Cos(angle * Mathf.Rad2Deg));}/// <summary>/// 圆y坐标/// </summary>/// <param name="b">圆心y坐标</param>/// <param name="r">半径</param>/// <param name="angle">角度</param>/// <returns></returns>private float Circular_Y(float b, float r, float angle){return (b + r * Mathf.Sin(angle * Mathf.Rad2Deg));}/// <summary>/// 双曲线x坐标/// </summary>/// <param name="a">实轴</param>/// <param name="angle">角度</param>/// <returns></returns>private float Hyperbola_X(float a, float angle){return a / Mathf.Cos(angle * Mathf.Rad2Deg);}/// <summary>/// 双曲线y坐标/// </summary>/// <param name="a">虚轴</param>/// <param name="angle">角度</param>/// <returns></returns>private float Hyperbola_Y(float b, float angle){return b * Mathf.Tan(angle * Mathf.Rad2Deg);}
}

unity让物体做圆周运动、椭圆运动、双曲线运动相关推荐

  1. UNITY 围绕一个物体做圆周运动

    有一道题:一个物体围绕原点(0,0)做匀速圆周运动.t1时物体位置为(x1,y1),已知物体的角速度为 w,围绕半径为 r.求经过时间t后,物体在圆周上位置(x,y). 求得: - x = r * s ...

  2. vpython 做圆周运动_《每周一点canvas动画》——圆周运动

    接<每周一点canvas动画>--波形运动 圆周运动可以分为两种基本的形式:正圆运动和椭圆运动. 在讲解圆周运动之前,必不可少的数学公式即将袭来.so,各位骚年们,请护好自己的膝盖.听不懂 ...

  3. Unity 控制物体移动的一些方法

    Unity 控制物体移动的一些方法 开坑, 回头慢慢补. 移动方法的总结. 1, 直接+=Vector3 transform.position += Vector3.forward * moveSpe ...

  4. [我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之材质了解Materials...

    [我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之材质了解Materials 既上一篇分享了中文字幕的灯光介绍Lights后,本篇分享一下第3个已完工 ...

  5. unity 陀螺仪 物体旋转和移动效果

    unity 陀螺仪 物体旋转和移动效果 直接上码 带注释 public class SDKGyroController : MonoBehaviour {//陀螺仪是否存在class GyroGame ...

  6. ROS小车应用:控制机器人做圆周运动

    一.首先创建一个功能包 跳转到src目录下 catkin_create_pkg 功能包名字 进入目录,创建一个script目录(主要使用py来写) 然后创建一个py文件,取名draw_circle.p ...

  7. 任何物体都在以光速运动,你能理解这一认识吗?

    导读:任何物体都在以光速运动,你一定是第一次听到这个认识.这个认识是灵遁者先生,把引力作为惯性的源泉之后,所得到认识.是谬论,还是新启示?是荒诞,还是值得去沉思?每一种思考,都是从问题开始,这个结论就 ...

  8. Unity查找物体的子物体、孙物体

    Unity查找物体下的所有物体 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人! (拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心 ...

  9. ros小车控制学习-------控制真实机器人做圆周运动

    ros课程的期末作业是控制真实机器人做运动,自行设计小车运动轨迹为特定图案.接下来描述一下控制真实机器人做圆周运动的简单步骤以及可能遇到的问题和我的解决办法. 个人建议是使用软件Bitvise SSH ...

  10. Unity数字孪生开发笔记——轿厢基本运动实现

    Unity数字孪生开发笔记--轿厢基本运动实现 一.轿厢实例说明 二.需求分析 1.轿厢移动 1>楼层信息 2>轿厢运动 2.对重移动 3.开关门动画 1>挂载到物体上的动画类 2& ...

最新文章

  1. 001_python单元测试
  2. 北京交通大学计算机科学与技术研究生导师,熊轲_北京交通大学研究生导师信息...
  3. 【竞赛相关】Kaggle活跃竞赛(12月汇总)
  4. Cookie和Session-学习笔记04【Session之验证码案例】
  5. 【Linux】一步一步学Linux——bunzip2命令(66)
  6. 生成Apk遇到的问题
  7. Windows Azure HandBook (1) IaaS相关技术
  8. Criteria和DetachedCriteria区别应用
  9. DEDE_5.7星星评分插件首发!
  10. html——float与position的兼容性探究
  11. FFmpeg基础库编程开发学习笔记——视频常见格式
  12. 高阶整车域控制器的详细设计方案
  13. vivado联合modelsim报错:vsim-19 Failed to access library ‘unisims_ver‘ at ‘unisims_ver‘
  14. 无废话ExtJs 入门教程七[登陆窗体Demo:Login]
  15. DIV+CSS样式---网易盖楼
  16. 温言QQ全能网络工具箱
  17. devops包括什么_名字叫什么? DevOps版。
  18. C#编程学习:正则表达式的使用
  19. 【算法打开(最短路径)--7.25】
  20. [摘录]第三章 打破部门门墙,优化团队绩效

热门文章

  1. linux 3 4文件管理ppt,第8单元-Linux系统文件查找与文件管理.ppt
  2. echarts地图下钻可缩放
  3. Vue 使用 Echarts 显示热力地图信息
  4. Basler相机开发流程
  5. DVWA靶机安装(超详细教程)
  6. 【spring】自定义AOP切面
  7. 话费充值哪里便宜?这样充帮我省了不少钱,推荐给您
  8. 关于NoSql的理解,键值数据库,文档数据库,列式存储数据库,图形数据库
  9. 8188eu usbwifi模块的ap模式,rtl8188_hostapd
  10. HTML5如何把圆分成六等分,Photoshop怎么把一个圆64等分?