小编Ada*_*man的帖子

将双曲线转换为贝塞尔曲线以绘制轨道路径

我正在使用涉及轨道力学的 HTML 画布编写 2D 模拟器和游戏。该程序的一个特点是在一个点上取一颗卫星的位置和速度矢量,并返回围绕一颗行星的二维轨道的半长轴、偏心率、近点角等。当偏心率小于 1 时,我可以使用 ctx.ellipse() 轻松地将轨道绘制为椭圆。然而,对于大于 1 的偏心率,轨道的正确形状是双曲线。目前,如果偏心率大于 1,我的程序将不绘制任何内容,但我希望它绘制正确的双曲线轨道。由于没有内置的“双曲线”函数,我需要将我的轨道转换为贝塞尔曲线。我对如何做到这一点感到有些茫然。输入将是一个焦点的位置,半长轴,离心率和近点参数(基本上是轨道旋转了多远),它应该返回正确的控制点来绘制双曲线的贝塞尔曲线近似值。它不必非常完美,只要它足够贴合即可。我该如何解决这个问题?

javascript bezier html5-canvas

3
推荐指数
1
解决办法
144
查看次数

标签 统计

bezier ×1

html5-canvas ×1

javascript ×1