三维场景中斜抛运动顶点的生成

  • 1 算法思想-斜抛运动
  • 2 代码
  • 3 参考文献

1 算法思想-斜抛运动

2 代码

void getparabola_vertex_2(glm::vec3 _Point, float _thetaAngle, float _fanAngle)
{float thetaAngle = radians(_thetaAngle);//斜角float fanAngle = radians(_fanAngle);//手柄指向和x轴的夹角;//第一个点float x;float y;float z;/*x_start = x;y_start = y;z_start = z;startPoint = glm::vec3(x_start, y_start, z_start);*/float v0 = 8;float te = 0;float av = 10;//计算落地点需要的时间float parameter_a = -0.5 * av;float parameter_b = v0 * sin(thetaAngle);float parameter_c = _Point.y;float x_solution = getSolution_qe_one_variable(parameter_a, parameter_b, parameter_c);//一次二次方程的解,可以这篇文章的参考文献te = x_solution;glm::vec3 pointFall;float pointfall_y = parameter_c + parameter_b * te + parameter_a * pow(te, 2);//float xTrajectory = 0;//float pointfall;float pointfall_x;float pointfall_z;float v1;float v2;/*if (_fanAngle!=0){*/v1 = v0 * cos(thetaAngle)*cos(fanAngle);//x轴方向的速度v2 = v0 * cos(thetaAngle)*sin(fanAngle);//z轴方向的速度pointfall_x = _Point.x + v1 * te;pointfall_z = _Point.z + v2 * te;/*}else{pointfall_x= _Point.x+ v0 * cos(thetaAngle)*te;pointfall_z = _Point.z;xTrajectory = _Point.x;}*/pointFall = glm::vec3(pointfall_x, pointfall_y, pointfall_z);//落地点的坐标//t=sqrt(_Point.y)//计算顶点float t = 0;y = parameter_c + parameter_b * t + parameter_a * pow(t, 2);float step = te / 15;for (int i = 0; i < 16; i++, t = t + step, y = parameter_c + parameter_b * t + parameter_a * pow(t, 2)){//xTrajectory = xTrajectory + v0 * cos(thetaAngle)*t;x = _Point.x + v1 * t;z = _Point.z + v2 * t;/*if (_fanAngle != 0){x = xTrajectory * sin(fanAngle);z = xTrajectory * cos(fanAngle);}else{x = _Point.x + v0 * cos(thetaAngle)*t;z = _Point.z;xTrajectory = _Point.x;}*/if (i == 15){//最后一个坐标放落地点坐标,这个坐标很重要,需要自己teleportation_2[0 + 6 * 15] = pointFall.x;teleportation_2[1 + 6 * 15] = 0;teleportation_2[2 + 6 * 15] = pointFall.z;teleportation_2[3 + 6 * 15] = 0.5;teleportation_2[4 + 6 * 15] = 0.0;teleportation_2[5 + 6 * 15] = 0.5;}else{teleportation_2[0 + 6 * i] = x;teleportation_2[1 + 6 * i] = y;teleportation_2[2 + 6 * i] = z;teleportation_2[3 + 6 * i] = 0.5;teleportation_2[4 + 6 * i] = 0.0;teleportation_2[5 + 6 * i] = 0.5;}}//遍历顶点数组/*for (int i = 0; i < num_vertex * 6; i++){cout << teleportation[i] << " ";if ((i + 1) % 6 == 0){cout << endl;}}*/
}

3 参考文献

[1].求解一元二次方程的根c++

三维场景中斜抛运动顶点的生成相关推荐

  1. 使用ArcGIS API和Three.js在三维场景中实现动态立体墙效果

    使用ArcGIS API和Three.js在三维场景中实现动态立体墙效果 废话不多说,直接先来看下最终实现的动态立体墙效果图. 如果图片还不够直观,那么点击链接查看在线示例. 首先我们需要用到ArcG ...

  2. matlab模拟斜抛运动60,大学物理教学改革论文,关于大学物理教学方法改革-Matlab的妙用相关参考文献资料-免费论文范文...

    导读:本文是一篇关于大学物理教学改革论文范文,可作为相关选题参考,和写作参考文献. (1.长江师范学院大学物理教研室 重庆 408100, 2.内蒙古工业大学 理学院物理系 内蒙古呼和浩特 01005 ...

  3. Python + matplotlib.animation 模拟斜抛运动动画(含完整代码)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 Abstract Introduction Matplotlib.animation Physics model and C ...

  4. 三维场景中常用的路径动画

    三维场景中常用的路径动画 前言 在三维场景中,除了用逼近真实的模型代表现实中的设备.标识物外,通常还会使用一些动画来表示模型在现实中一些行为和作用.常见的动画比如路径动画.旋转动画.发光动画.流动动画 ...

  5. 中添加2000坐标系_ArcGIS API for JavaScript 4.16在三维场景中以天地图为底图加载2000坐标系的倾斜摄影数据...

    2021年目标 每日更新一篇公众号文章!!! 需求描述 WebGIS项目中如果有三维需求的话,开发中我们经常会遇到倾斜摄影数据,有了倾斜摄影数据之后,我们可以进行生成真实的三维场景等操作. 本文从前端 ...

  6. 三维场景中创建镜面反射效果(three.js实战9)

    创建镜面效果 1. demo效果 2. 实现要点 2.1 创建三维模型 2.2 创建镜面 2.3 场景动画更新 3. demo代码 1. demo效果 2. 实现要点 2.1 创建三维模型 demo中 ...

  7. Unity 斜抛运动 路径点

    1.截图   2.代码介绍 使用Unity自带Rigidbody刚体插件. 代码比较简单:使用Unity的 Rigidbody.velocity 进行位移(不使用AddForce). private ...

  8. C语言编码小球斜抛运动,利用C4droid绘制小球斜抛运动轨迹(考虑空气阻力)

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 我把源代码分享出来,欢迎有兴趣的朋友下载测试,修改优化. /*********************************************** ...

  9. 斜抛运动的最远射程问题

    问题概述: 在o点上方高度为h处以速度v抛出一物体,该物体运动一段时间后落到地面p处,问抛出方向与水平方向的夹角是多少时,op有最大值,最大值是多少? 当    时: op有最大值: 题目:迎风舞

最新文章

  1. 94. 二叉树的中序遍历(迭代)
  2. Windows下Appium环境搭建(java版)
  3. .net (object sender, EventArgs e) 学习总结
  4. loading initial ramdisk 卡住_驿站晨读 | 一城市多家快递“卡住了”!有快递网点直接建议:换别家吧......
  5. [USACO07NOV]牛继电器Cow Relays
  6. joptionpane java_Java JOptionPane
  7. 儿童编程python入门_儿童编程python入门
  8. hdoj 1257(暴力)
  9. linux学习查看系统资源和磁盘分区
  10. java基础——“”equals“”与 “”==“” 的区别
  11. 云瓣影音网站微信端(已开源)
  12. php之简单的文件管理(基本功能
  13. js基础-23-websocket和ajax的区别
  14. 各大搜索引擎提交入口
  15. python读取lmdb文件_LMDB 的 Python 接口使用方法
  16. 扫拖地机器人预留_进阶规划,扫拖一体,小瓦扫地机器人规划版重度体验
  17. js 获取移动端设备类型及系统版本号
  18. 域乎X蚂蚁链:打造新购物模式?
  19. python在线查题_知到题目在线答案查询
  20. 团队管理的四大挑战——裁人篇

热门文章

  1. MySQL #格式unicode转汉字
  2. IO流-转换流-Java
  3. python | np.squeeze()函数
  4. 从头开始写STM32F103C8T6驱动库(四)——编写延时函数,详解Systick
  5. 国庆长假面面观(作者:向阳生涯)
  6. 极其方便的使用Mybatis单表的增删改查
  7. 淘宝搜索店铺列表 API 返回值说明
  8. 免费物流跟踪轨迹订阅接口技术文档-快递鸟
  9. cmake -D CMAKE_PREFIX_PATH=/home/nvidia/data/wyy/openpose/build
  10. 基于NodeJS的漫画之家网站