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)
    */

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

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

  • 相关阅读:
    【美团面试题】——图遍历
    ubuntu15.04 + ROS jade
    3P(PS、PR、PDF编辑器Acrobat)中的基基本操作(三)
    谈谈你对组件的看法
    Web开发中跨域的几种解决方案
    JS事件模型
    zepto的clone方法于textarea和select的bug修复
    SASS使用总结
    git用法总结
    去除inline-block元素间间距
  • 原文地址:https://www.cnblogs.com/lyggqm/p/13214691.html
Copyright © 2011-2022 走看看