zoukankan      html  css  js  c++  java
  • [原][算法]分解计算三维空间抛物线

    /***********分解三维空间抛物线*************
    计算方法:已知空间两点,起始点(x0,y0,z0)与目标点(x1,y1,z1)
    
    转化三维到二维
    
    将起始点作为原点,用 目标点的向量v1(x1,y1) - 起始点的向量v0(x0,y0)得到方向向量 vectorReal
    用得到的向量vectorReal的长度(模)作为新二维的x,原来三维的z作为新二维的y
    
    规定:
        三维的  起始点    为新二维的  原点(0,0)
        三维的  目标点的  x值为: len(v1,v0)    y值为:z1 - z0  
    
        !!再选取他们的 中间点,且高度为长度一半,作为抛物线必经点,来计算一个简单的抛物线
        中间点    x值:len(v1,v0)/2.0   y值: max(len(v1,v0)/2.0   , (z1 - z0))  
    
        这个二维抛物线经过以上三个点
    */
    
    /***********计算二维抛物线**************
    已知两点 A(x0 y0)  与 B(x1 y1) 是x非0的点
    抛物线公式: y = a*x*x + b*x + c  
    由于抛物线经过(0,0)点, 所以 c 为 0
          公式: y = a*x*x + b*x 
    带入推导:
        ===>>>  a=(y1*x0 - x1*y0)/(x0*x1*(x1 - x0))  
        ===>>>  b=(y0/x0 - a*x0)
    */

    我这里已知只有空间中的发射点和定中目标点,中间飞行经过的点是自己定的。

    计算方式是,将三维的点转化到二维计算,再通过向量反算出三维的坐标即可。

  • 相关阅读:
    【转载】python_logging模块
    python安装模块速度慢的解决方法
    2020软件工程作业00
    2020软件工程个人作业——软件工程实践总结
    2020软件工程作业05
    2020软件工程作业04
    2020软件工程作业03
    2020软件工程作业02
    2020软件工程作业01
    列表、元组、集合和字典区别
  • 原文地址:https://www.cnblogs.com/lyggqm/p/13214691.html
Copyright © 2011-2022 走看看