window和document

前言

最近刚刚进入开发阶段,实现一个小功能的时候会用到gpt,结果给出的答案有的时候使用document.addEventListener有的时候使用window.addEventListener,作为一个职场小白有的时候真的会忽略最基础的问题,因此今天主要总结一波windowdocument的区别

window是什么

window 是浏览器的全局对象,表示浏览器的窗口或框架。它是 JavaScript 的顶层对象,所有的 JavaScript 全局变量和函数都是 window 对象的属性。
提供了与浏览器环境交互的方法,例如控制浏览器的加载、调控窗口的位置和尺寸、处理定时器、管理浏览器历史等。
window 提供了全局方法和属性,如 alert()setTimeout()localStoragesessionStorage
表示浏览器窗口,以及其它浏览器相关的信息和控制。

  // 弹出警告框
  window.alert("Hello, World!");

  // 设置定时器
  window.setTimeout(() => {
    console.log("This message will be logged after 2 seconds.");
  }, 2000)

document是什么

document 是 window 对象的一个属性,表示当前网页(文档)的 DOM(文档对象模型)。它提供了用于访问和操作 HTML 和 XML 文档的接口。
可以使用 document 来操作页面中的元素,比如创建、修改、删除元素,以及读取和更新内容和属性等.
提供了操作 DOM 的方法,如 getElementById()createElement()querySelector() 等。
允许访问和修改网页的内容和结构。

  // 获取元素并改变其内容
  document.getElementById('myElement').innerText = 'Hello, DOM!';
  
  // 创建新元素并添加到 DOM
  const newElement = document.createElement('div');
  newElement.innerText = "I'm a new div!";
  document.body.appendChild(newElement);
### Reeds-Shepp 曲线算法解释 Reeds-Shepp曲线由J.A.ReedsL.A.Sheep于1990年提出,旨在解决汽车既能前进又能倒车情况下的最优路径问题[^2]。相比于仅能前移的Dubins曲线,这种扩展显著提升了复杂环境中的路径优化能力。 #### 运动模式特点 该模型允许车辆执行三种基本操作:直行、转向左侧行驶以及转向右侧行驶;特别之处在于它不仅支持正向行驶还兼容反向移动。这赋予了其更强灵活性,在狭窄空间内找到更短捷径成为可能[^1]。 #### 算法核心原理 为了计算两点间最短路径,Reeds-Shepp算法通过一系列几何变换来简化原始问题: - **坐标变换**:调整起始位置至原点并设定初始方向为X轴正向。 - **时间翻转(time-flip)**:处理含有后退动作的情况,即将部分路段视为逆序遍历。 - **反射变换(reflect)**:当目标方位角超过特定阈值时应用此方法改变参照系。 - **后向变换(backwards)**:用于转换最终得到的结果回到实际物理场景中去。 这些技术手段共同作用下实现了高效求解任意两姿态间的最小距离路径方案。 ### 实现方式概览 针对不同开发平台提供了多种编程语言版本的具体实施方案说明文档,包括但不限于C++ (适用于ROS框架)、Python脚本形式及MATLAB工具箱接口调用等方式[^3]。每种实现都遵循上述理论基础构建而成,并根据各自特性进行了适当优化适配工作。 ```cpp // C++ 示例代码片段展示如何初始化ReedsShepp类对象 #include "reeds_shepp.h" int main() { reeds_shepp::State start{0, 0, 0}; // 起点状态(x,y,theta) reeds_shepp::State goal{10, 5, M_PI_2}; // 终点状态 std::vector<reeds_shepp::Path> paths; bool success = reeds_shepp::computePaths(start, goal, &paths); } ``` ```python # Python 示例代码片段展示了简单的路径查询过程 from reeds_shepp import PathPlanner planner = PathPlanner() start_pose = (0., 0., 0.) goal_pose = (8., 4., np.pi / 2) path = planner.plan_path(start_pose=start_pose, end_pose=goal_pose) print(f"Total length of the planned path is {sum([segment.length for segment in path])}") ``` ### 应用领域探讨 在自动驾驶领域特别是低速无人驾驶物流配送车、自动泊车辅助系统等方面有着广泛应用前景。由于能够精确控制车辆完成较为复杂的机动动作序列而备受青睐。此外,在机器人学研究里同样扮演着重要角色——帮助机械臂规划避障轨迹或是指导多足行走装置探索未知地形等任务均可见到此类算法的身影。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值