🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
ast::ConeEclipseCalculator类 参考final

#include <ConeEclipseCalculator.hpp>

+ 类 ast::ConeEclipseCalculator 继承关系图:

Public 成员函数

double getLightingRatio (const TimePoint &time, const Vector3d &position, Frame *frame) override
 
- Public 成员函数 继承自 ast::EclipseCalculator
 EclipseCalculator (CelestialBody *lightSource)
 
CelestialBodylightSource () const
 
void setLightSource (CelestialBody *lightSource)
 
void setOccultingBodies (const std::vector< HCelestialBody > &occultingBodies)
 
void addOccultingBody (HCelestialBody occultingBody)
 

额外继承的成员函数

- Protected 属性 继承自 ast::EclipseCalculator
HCelestialBody lightSource_ {nullptr}
 
std::vector< HCelestialBodyoccultingBodies_
 

详细描述

双锥阴影模型光照计算器

使用双锥阴影模型(本影-半影模型)计算光照强度。该模型考虑光源的视张角, 当光源(如太阳)被遮挡体(如地球)部分遮挡时,可计算出0~1之间的半影光照比例。

  • 全光照(1):光源与遮挡体视圆盘相离
  • 全阴影(0):光源完全被遮挡体遮蔽
  • 半影(0~1):光源部分被遮挡,按被遮挡立体角比例计算

成员函数说明

◆ getLightingRatio()

double ast::ConeEclipseCalculator::getLightingRatio ( const TimePoint & time,
const Vector3d & position,
Frame * frame )
overridevirtual

计算光照强度(含半影)

参数
time时间点
position观测者位置(相对于 frame 坐标系)
frame观测者所在参考系
返回
光照强度, 0: 全阴影, 1: 全光照,0-1: 部分遮挡(半影)
待办事项
计算遮挡时总是假设遮挡体是个完美球形,如果是其他形状,需要改进计算方法

实现了 ast::EclipseCalculator.


该类的文档由以下文件生成: