• [原][算法]分解计算三维空间抛物线


    /***********分解三维空间抛物线*************
    计算方法:已知空间两点,起始点(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)
    */

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

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

  • 相关阅读:
    vue 单页面应用 app自适应方案
    css3-3D特效
    css3动画-transition
    html5基本页面
    初入博客园
    网络部分之如何发送HTTP请求
    多线程知识之NSOperation的使用
    多线程知识点之GCD的使用
    多线程知识点之NSThread的使用
    plist 文件读写
  • 原文地址:https://www.cnblogs.com/lyggqm/p/13214691.html
Copyright © 2020-2023  润新知