🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
工具模块

详细描述

提供一些跨平台公用函数与类

参见
src/AstUtil

专题

 容器
 
 文本解析和格式化
 
 平台相关接口
 
 单位和数量分析
 
 运行时类型信息
 
 字符串相关函数
 

命名空间

namespace  ast::literals
 

class  ast::Color
 
class  ast::MessageLogContext
 
class  ast::LoggerStream
 
class  ast::NoopStream
 
class  ast::MessageLogger
 
class  ast::SinCos
 
class  ast::Polynomial
 
class  ast::WorkingDirectory
 

宏定义

#define AST_ENV_DATA_DIR   "AST_DATA_DIR"
 
#define AST_DATA_DIR_NAME   "data"
 
#define AST_DEFAULT_DIR_AEP8   "SolarSystem/Earth/aep8/"
 
#define AST_DEFAULT_DIR_IGRF   "SolarSystem/Earth/igrf/"
 

类型定义

typedef uint32_t ast::color_t
 

枚举

enum  ast::EColor : color_t {
  ast::eBlack = rgb(0, 0, 0) , ast::eSilver = rgb(192, 192, 192) , ast::eGray = rgb(128, 128, 128) , ast::eWhite = rgb(255, 255, 255) ,
  ast::eMaroon = rgb(128, 0, 0) , ast::eRed = rgb(255, 0, 0) , ast::ePurple = rgb(128, 0, 128) , ast::eFuchsia = rgb(255, 0, 255) ,
  ast::eGreen = rgb(0, 128, 0) , ast::eLime = rgb(0, 255, 0) , ast::eOlive = rgb(128, 128, 0) , ast::eYellow = rgb(255, 255, 0) ,
  ast::eNavy = rgb(0, 0, 128) , ast::eBlue = rgb(0, 0, 255) , ast::eTeal = rgb(0, 128, 128) , ast::eAqua = rgb(0, 255, 255) ,
  ast::eTransparent = rgba(0, 0, 0, 0) , ast::eAquaMarine = rgb(127, 255, 212) , ast::eAliceBlue = rgb(240, 248, 255) , ast::eAntiqueWhite = rgb(250, 235, 215) ,
  ast::eAzure = rgb(240, 255, 255) , ast::eBeige = rgb(245, 245, 220) , ast::eBisque = rgb(255, 228, 196) , ast::eBlanchedAlmond = rgb(255, 235, 205) ,
  ast::eBlueViolet = rgb(138, 43, 226) , ast::eBrown = rgb(165, 42, 42) , ast::eBurlyWood = rgb(222, 184, 135) , ast::eCadetBlue = rgb(95, 158, 160) ,
  ast::eChartreuse = rgb(127, 255, 0) , ast::eChocolate = rgb(210, 105, 30) , ast::eCoral = rgb(255, 127, 80) , ast::eCornflowerBlue = rgb(100, 149, 237) ,
  ast::eCornsilk = rgb(255, 248, 220) , ast::eCrimson = rgb(220, 20, 60) , ast::eCyan = eAqua , ast::eDarkBlue = rgb(0, 0, 139) ,
  ast::eDarkCyan = rgb(0, 139, 139) , ast::eDarkGoldenRod = rgb(184, 134, 11) , ast::eDarkGray = rgb(169, 169, 169) , ast::eDarkGreen = rgb(0, 100, 0) ,
  ast::eDarkGrey = rgb(169, 169, 169) , ast::eDarkKhaki = rgb(189, 183, 107) , ast::eDarkMagenta = rgb(139, 0, 139) , ast::eDarkOliveGreen = rgb(85, 107, 47) ,
  ast::eDarkOrange = rgb(255, 140, 0) , ast::eDarkOrchid = rgb(153, 50, 204) , ast::eDarkRed = rgb(139, 0, 0) , ast::eDarkSalmon = rgb(233, 150, 122) ,
  ast::eDarkSeaGreen = rgb(143, 188, 143) , ast::eDarkSlateBlue = rgb(72, 61, 139) , ast::eDarkSlateGray = rgb(47, 79, 79) , ast::eDarkSlateGrey = rgb(47, 79, 79) ,
  ast::eDarkTurquoise = rgb(0, 206, 209) , ast::eDarkViolet = rgb(148, 0, 211) , ast::eDeepPink = rgb(255, 20, 147) , ast::eDeepSkyBlue = rgb(0, 191, 255) ,
  ast::eDimGray = rgb(105, 105, 105) , ast::eDimGrey = rgb(105, 105, 105) , ast::eDodgerBlue = rgb(30, 144, 255) , ast::eFireBrick = rgb(178, 34, 34) ,
  ast::eFloralWhite = rgb(255, 250, 240) , ast::eForestGreen = rgb(34, 139, 34) , ast::eGainsboro = rgb(220, 220, 220) , ast::eGhostWhite = rgb(248, 248, 255) ,
  ast::eGold = rgb(255, 215, 0) , ast::eGoldenRod = rgb(218, 165, 32) , ast::eGreenYellow = rgb(173, 255, 47) , ast::eGrey = rgb(128, 128, 128) ,
  ast::eHoneydew = rgb(240, 255, 240) , ast::eHotPink = rgb(255, 105, 180) , ast::eIndianRed = rgb(205, 92, 92) , ast::eIndigo = rgb(75, 0, 130) ,
  ast::eIvory = rgb(255, 255, 240) , ast::eKhaki = rgb(240, 230, 140) , ast::eLavender = rgb(230, 230, 250) , ast::eLavenderBlush = rgb(255, 240, 245) ,
  ast::eLawnGreen = rgb(124, 252, 0) , ast::eLemonChiffon = rgb(255, 250, 205) , ast::eLightBlue = rgb(173, 216, 230) , ast::eLightCoral = rgb(240, 128, 128) ,
  ast::eLightCyan = rgb(224, 255, 255) , ast::eLightGoldenRodYellow = rgb(250, 250, 210) , ast::eLightGray = rgb(211, 211, 211) , ast::eLightGreen = rgb(144, 238, 144) ,
  ast::eLightGrey = rgb(211, 211, 211) , ast::eLightPink = rgb(255, 182, 193) , ast::eLightSalmon = rgb(255, 160, 122) , ast::eLightSeaGreen = rgb(32, 178, 170) ,
  ast::eLightSkyBlue = rgb(135, 206, 250) , ast::eLightSlateGray = rgb(119, 136, 153) , ast::eLightSlateGrey = rgb(119, 136, 153) , ast::eLightSteelBlue = rgb(176, 196, 222) ,
  ast::eLightYellow = rgb(255, 255, 224) , ast::eLimeGreen = rgb(50, 205, 50) , ast::eLinen = rgb(250, 240, 230) , ast::eMagenta = eFuchsia ,
  ast::eMediumAquaMarine = rgb(102, 205, 170) , ast::eMediumBlue = rgb(0, 0, 205) , ast::eMediumOrchid = rgb(186, 85, 211) , ast::eMediumPurple = rgb(147, 112, 219) ,
  ast::eMediumSeaGreen = rgb(60, 179, 113) , ast::eMediumSlateBlue = rgb(123, 104, 238) , ast::eMediumSpringGreen = rgb(0, 250, 154) , ast::eMediumTurquoise = rgb(72, 209, 204) ,
  ast::eMediumVioletRed = rgb(199, 21, 133) , ast::eMidnightBlue = rgb(25, 25, 112) , ast::eMintCream = rgb(245, 255, 250) , ast::eMistyRose = rgb(255, 228, 225) ,
  ast::eMoccasin = rgb(255, 228, 181) , ast::eNavajoWhite = rgb(255, 222, 173) , ast::eOldLace = rgb(253, 245, 230) , ast::eOliveDrab = rgb(107, 142, 35) ,
  ast::eOrange = rgb(255, 165, 0) , ast::eOrangeRed = rgb(255, 69, 0) , ast::eOrchid = rgb(218, 112, 214) , ast::ePaleGoldenRod = rgb(238, 232, 170) ,
  ast::ePaleGreen = rgb(152, 251, 152) , ast::ePaleTurquoise = rgb(175, 238, 238) , ast::ePaleVioletRed = rgb(219, 112, 147) , ast::ePapayaWhip = rgb(255, 239, 213) ,
  ast::ePeachPuff = rgb(255, 218, 185) , ast::ePeru = rgb(205, 133, 63) , ast::ePink = rgb(255, 192, 203) , ast::ePlum = rgb(221, 160, 221) ,
  ast::ePowderBlue = rgb(176, 224, 230) , ast::eRebeccaPurple = rgb(102, 51, 153) , ast::eRosyBrown = rgb(188, 143, 143) , ast::eRoyalBlue = rgb(65, 105, 225) ,
  ast::eSaddleBrown = rgb(139, 69, 19) , ast::eSalmon = rgb(250, 128, 114) , ast::eSandyBrown = rgb(244, 164, 96) , ast::eSeaGreen = rgb(46, 139, 87) ,
  ast::eSeaShell = rgb(255, 245, 238) , ast::eSienna = rgb(160, 82, 45) , ast::eSkyBlue = rgb(135, 206, 235) , ast::eSlateBlue = rgb(106, 90, 205) ,
  ast::eSlateGray = rgb(112, 128, 144) , ast::eSlateGrey = rgb(112, 128, 144) , ast::eSnow = rgb(255, 250, 250) , ast::eSpringGreen = rgb(0, 255, 127) ,
  ast::eSteelBlue = rgb(70, 130, 180) , ast::eTan = rgb(210, 180, 140) , ast::eThistle = rgb(216, 191, 216) , ast::eTomato = rgb(255, 99, 71) ,
  ast::eTurquoise = rgb(64, 224, 208) , ast::eViolet = rgb(238, 130, 238) , ast::eWheat = rgb(245, 222, 179) , ast::eWhiteSmoke = rgb(245, 245, 245) ,
  ast::eYellowGreen = rgb(154, 205, 50)
}
 
enum  ast::ELogLevel {
  ast::eDebug , ast::eInfo , ast::eWarning , ast::eError ,
  ast::eCritical , ast::eFatal
}
 

函数

constexpr color_t ast::rgb (uint8_t r, uint8_t g, uint8_t b)
 
constexpr color_t ast::rgba (uint8_t r, uint8_t g, uint8_t b, uint8_t a)
 
A_CONSTEXPR_CXX14 void ast::aColorToRGB (color_t color, uint8_t &r, uint8_t &g, uint8_t &b) noexcept
 
A_CONSTEXPR_CXX14 void ast::aColorToRGBA (color_t color, uint8_t &r, uint8_t &g, uint8_t &b, uint8_t &a) noexcept
 
A_ALWAYS_INLINE double ast::aLightSpeed () noexcept
 
void ast::aDebugBreak ()
 
void ast::aLogMessageV (ELogLevel level, const MessageLogContext &context, const char *format, va_list ap)
 
void ast::aLogMessage (ELogLevel level, const MessageLogContext &context, const char *format,...)
 
A_ALWAYS_INLINE void ast::sincos (double x, double *psin, double *pcos)
 
A_ALWAYS_INLINE SinCos ast::sincos (double x)
 
template<typename Scalar >
Scalar ast::aMax (Scalar a, Scalar b)
 
template<typename Scalar >
Scalar ast::aMin (Scalar a, Scalar b)
 
A_ALWAYS_INLINE double ast::aNormalizeAngleStart (double angle, double start)
 
A_ALWAYS_INLINE double ast::aNormalizeAngle (double angle, double center)
 
A_ALWAYS_INLINE double ast::aNormalizeAngle0To2Pi (double angle)
 
A_ALWAYS_INLINE double ast::aNormalizeAngleNegPiToPi (double angle)
 
A_ALWAYS_INLINE double ast::aNormalizeAngleNeg2PiTo0 (double angle)
 
A_ALWAYS_INLINE double ast::rad2deg (double x)
 
A_ALWAYS_INLINE double ast::deg2rad (double x)
 
A_ALWAYS_INLINE double ast::sind (double x)
 
A_ALWAYS_INLINE double ast::cosd (double x)
 
A_ALWAYS_INLINE double ast::tand (double x)
 
A_ALWAYS_INLINE double ast::asind (double x)
 
A_ALWAYS_INLINE double ast::acosd (double x)
 
A_ALWAYS_INLINE double ast::atand (double x)
 
A_ALWAYS_INLINE double ast::atan2d (double y, double x)
 
errc_t ast::aParsePolynomial (StringView content, StringView varname, std::vector< double > &coeffs)
 
errc_t ast::aParsePolynomial (StringView content, std::vector< double > &coeffs)
 
std::string ast::aFormatPolynomial (const std::vector< double > &coeffs, StringView varname)
 
A_ALWAYS_INLINE errc_t ast::aParsePolynomial (StringView content, Polynomial &poly)
 
A_ALWAYS_INLINE errc_t ast::aParsePolynomial (StringView content, StringView varname, Polynomial &poly)
 
std::string ast::aDataDirGetDefault ()
 
errc_t ast::aDataDirGetDefault (std::string &datadir)
 
std::string ast::aDataDir ()
 
errc_t ast::aDataDir (std::string &datadir)
 
double ast::Polynomial::eval (double x) const
 

变量

constexpr double ast::kJ1900Epoch = 2415020.0
 
constexpr double ast::kJ1950Epoch = 2433282.5
 
constexpr double ast::kJ2000Epoch = 2451545.0
 
constexpr double ast::kJ2100Epoch = 2488070.0
 
constexpr double ast::kB1900Epoch = 2415020.31352
 
constexpr double ast::kB1950Epoch = 2433282.42345905
 
constexpr double ast::kTTMinusTAI = 32.184
 
constexpr double ast::kGPSMinusTAI = 19.0
 
constexpr double ast::kTTMinusTAIInDay = 32.184/86400
 
constexpr double ast::kMJDRefEpoch = 2400000.5
 
constexpr double ast::kPI = 3.141592653589793238462643383279502884197169399375105
 
constexpr double ast::kTwoPI = 6.283185307179586476925286766558
 
constexpr double ast::kFourPI = 12.566370614359172953850573533116
 
constexpr double ast::kHalfPI = 1.5707963267948966192313216916395
 
constexpr double ast::kThirdPI = 1.047197551196597746154214461093
 
constexpr double ast::kQuarterPI = 0.78539816339744830961566084581975
 
constexpr double ast::kSqrPI = 9.869604401089358618834490999873
 
constexpr double ast::kAU = 1.49597870691e11
 
constexpr double ast::kLightSpeed = 2.99792458e8
 
constexpr double ast::kGrav = 6.673e-11
 
constexpr double ast::kEarthGrav = 3.986004418e14
 
constexpr double ast::kEarthGrav_EGM2008 = 3.986004415e14
 
constexpr double ast::kEarthRadius = 6378137.0
 
constexpr double ast::kEarthMinRadius = 6.35675231424E6
 
constexpr double ast::kEarthFlatFact = 3.35281066475E-3
 
constexpr double ast::kEarthSiderealDay = 86164.09054
 
constexpr double ast::kEarthSiderealYear = 365.25636
 
constexpr double ast::kEarthAngVel = 7.292115146706979e-5
 
constexpr double ast::kMoonGrav = 4.9028029535968e+12
 
constexpr double ast::kMoonRadius = 1737400.0
 
constexpr double ast::kMoonMinRadius = 1737400.0
 
constexpr double ast::kJupiterGrav = 1.26712000000000e+017
 
constexpr double ast::kJupiterRadius = 7.14920000000000e+007
 
constexpr double ast::kJupiterMinRadius = 6.68540000000000e+007
 
constexpr double ast::kMarsGrav = 4.28283719012840e+013
 
constexpr double ast::kMarsRadius = 3.39700000000000e+006
 
constexpr double ast::kMarsMinRadius = 3.37500000000000e+006
 
constexpr double ast::kMercuryGrav = 2.20320800000000e+013
 
constexpr double ast::kMercuryRadius = 2.43970000000000e+006
 
constexpr double ast::kMercuryMinRadius = 2.43970000000000e+006
 
constexpr double ast::kNeptuneGrav = 6.87130000000000e+015
 
constexpr double ast::kNeptuneRadius = 2.52690000000000e+007
 
constexpr double ast::kNeptuneMinRadius = 2.48000000000000e+007
 
constexpr double ast::kPlutoGrav = 1.00907600000000e+012
 
constexpr double ast::kPlutoRadius = 1.16200000000000e+006
 
constexpr double ast::kPlutoMinRadius = 1.16200000000000e+006
 
constexpr double ast::kSaturnGrav = 3.79340000000000e+016
 
constexpr double ast::kSaturnRadius = 6.02680000000000e+007
 
constexpr double ast::kSaturnMinRadius = 5.43640000000000e+007
 
constexpr double ast::kSunGrav = 1.327122E20
 
constexpr double ast::kSunRadius = 695990000.0
 
constexpr double ast::kSunMinRadius = 695990000.0
 
constexpr double ast::kUranusGrav = 5.80320000000000e+015
 
constexpr double ast::kUranusRadius = 2.55590000000000e+007
 
constexpr double ast::kUranusMinRadius = 2.49730000000000e+007
 
constexpr double ast::kVenusGrav = 3.24858800000000e+014
 
constexpr double ast::kVenusRadius = 6.05190000000000e+006
 
constexpr double ast::kVenusMinRadius = 6.05190000000000e+006
 
constexpr double ast::kMeterToKilometer = 1.0e-03
 
constexpr double ast::kMeterToCentimeter = 1.0e+02
 
constexpr double ast::kMeterToMillimeter = 1.0e+03
 
constexpr double ast::kMeterToMicroMeter = 1.0e+06
 
constexpr double ast::kMeterToNanometer = 1.0e+09
 
constexpr double ast::kKilometerToMeter = 1.0e03
 
constexpr double ast::kCentimeterToMeter = 1.e-02
 
constexpr double ast::kMillimeterToMeter = 1.e-03
 
constexpr double ast::kMicroMeterToMeter = 1.e-06
 
constexpr double ast::kNanometerToMeter = 1.e-09
 
constexpr double ast::kSecToMin = 0.0166666666666666667
 
constexpr double ast::kSecToHour = 0.000277777777777777778
 
constexpr double ast::kSecToDay = 0.0000115740740740740741
 
constexpr double ast::kMinToSec = 60.0
 
constexpr double ast::kMinToHour = 0.0166666666666666667
 
constexpr double ast::kMinToDay = 0.000694444444444444444
 
constexpr double ast::kHourToSec = 3600.0
 
constexpr double ast::kHourToMin = 60.0
 
constexpr double ast::kHourToDay = 0.0416666666666666667
 
constexpr double ast::kDayToSec = 8.64e04
 
constexpr double ast::kDayToMin = 1440.0
 
constexpr double ast::kDayToHour = 24.0
 
constexpr double ast::kMilliSecToSec = 1.0e-03
 
constexpr double ast::kMicroSecToSec = 1.0e-06
 
constexpr double ast::kNanoSecToSec = 1.0e-09
 
constexpr double ast::kPicoSecToSec = 1.0e-12
 
constexpr double ast::kSecToMilliSec = 1.0e+03
 
constexpr double ast::kSecToMicroSec = 1.0e+06
 
constexpr double ast::kSecToNanoSec = 1.0e+09
 
constexpr double ast::kSecToPicoSec = 1.0e+12
 
constexpr double ast::kDaysPerJulianCentury = 36525.0
 
constexpr double ast::kDaysPerJulianYear = 365.25
 
constexpr double ast::kSecondsPerDay = 86400.0
 
constexpr double ast::kSecondsPerHour = 3600.0
 
constexpr double ast::kSecondsPerMinute = 60.0
 
constexpr double ast::kSecondsPerJulianYear = 31557600.0
 
constexpr double ast::kRadToDeg = 57.2957795130823208767
 
constexpr double ast::kDegToRad = 0.017453292519943295769236907684886
 
constexpr double ast::kArcSecToRad = 4.848136811095359935899141e-6
 
constexpr double ast::kArcMinToRad = 2.9088820866572159615394846141477e-4
 
constexpr double ast::kTimeSecToRad = 7.2722052166430399038487115353692e-5
 
constexpr double ast::kTimeMinToRad = 0.0043633231299858239423092269212215
 
constexpr double ast::kRevolutionToRad = kTwoPI
 

枚举类型说明

◆ EColor

enum ast::EColor : color_t

预定义的颜色枚举

参见
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Values/named-color
枚举值
eBlack 

黑色

eSilver 

银色

eGray 

灰色

eWhite 

白色

eMaroon 

栗色

eRed 

红色

ePurple 

紫色

eFuchsia 

紫红色

eGreen 

绿色

eLime 

酸橙色

eOlive 

橄榄色

eYellow 

黄色

eNavy 

藏青色

eBlue 

蓝色

eTeal 

蓝绿色

eAqua 

水蓝色

eTransparent 

透明

eAquaMarine 

海绿色

eAliceBlue 

爱丽丝蓝

eAntiqueWhite 

古董白

eAzure 

天蓝色

eBeige 

米色

eBisque 

陶土色

eBlanchedAlmond 

杏仁白

eBlueViolet 

蓝紫色

eBrown 

棕色

eBurlyWood 

硬木色

eCadetBlue 

军蓝色

eChartreuse 

黄绿色

eChocolate 

巧克力色

eCoral 

珊瑚色

eCornflowerBlue 

矢车菊蓝

eCornsilk 

玉米丝色

eCrimson 

深红色

eCyan 

青色(与 eAqua 相同)

eDarkBlue 

深蓝色

eDarkCyan 

深青色

eDarkGoldenRod 

深金黄色

eDarkGray 

深灰色

eDarkGreen 

深绿色

eDarkGrey 

深灰色(与 eDarkGray 相同)

eDarkKhaki 

深卡其色

eDarkMagenta 

深洋红色

eDarkOliveGreen 

深橄榄绿

eDarkOrange 

深橙色

eDarkOrchid 

深紫色

eDarkRed 

深红色

eDarkSalmon 

深鲑鱼色

eDarkSeaGreen 

深海绿色

eDarkSlateBlue 

深石板蓝

eDarkSlateGray 

深石板灰

eDarkSlateGrey 

深石板灰(与 eDarkSlateGray 相同)

eDarkTurquoise 

深青绿色

eDarkViolet 

深紫色

eDeepPink 

深粉色

eDeepSkyBlue 

深天蓝色

eDimGray 

暗灰色

eDimGrey 

暗灰色(与 eDimGray 相同)

eDodgerBlue 

道奇蓝

eFireBrick 

火砖红

eFloralWhite 

花白色

eForestGreen 

森林绿

eGainsboro 

浅灰色

eGhostWhite 

幽灵白

eGold 

金色

eGoldenRod 

金棕色

eGreenYellow 

绿黄色

eGrey 

灰色(与 eGray 相同)

eHoneydew 

蜜瓜色

eHotPink 

亮粉色

eIndianRed 

印度红

eIndigo 

靛蓝色

eIvory 

象牙白

eKhaki 

卡其色

eLavender 

淡紫色

eLavenderBlush 

淡紫红

eLawnGreen 

草坪绿

eLemonChiffon 

柠檬绸色

eLightBlue 

浅蓝色

eLightCoral 

浅珊瑚色

eLightCyan 

浅青色

eLightGoldenRodYellow 

浅金棕色

eLightGray 

浅灰色

eLightGreen 

浅绿色

eLightGrey 

浅灰色(与 eLightGray 相同)

eLightPink 

浅粉色

eLightSalmon 

浅鲑鱼色

eLightSeaGreen 

浅海绿色

eLightSkyBlue 

浅天蓝色

eLightSlateGray 

浅石板灰

eLightSlateGrey 

浅石板灰(与 eLightSlateGray 相同)

eLightSteelBlue 

亮钢蓝

eLightYellow 

浅黄色

eLimeGreen 

酸橙绿

eLinen 

亚麻色

eMagenta 

品红色(与 eFuchsia 相同)

eMediumAquaMarine 

中海洋绿

eMediumBlue 

中蓝色

eMediumOrchid 

中兰紫色

eMediumPurple 

中紫色

eMediumSeaGreen 

中海绿

eMediumSlateBlue 

中石板蓝

eMediumSpringGreen 

中春绿

eMediumTurquoise 

中青绿色

eMediumVioletRed 

中紫红色

eMidnightBlue 

午夜蓝

eMintCream 

薄荷奶油色

eMistyRose 

薄雾玫瑰色

eMoccasin 

鹿皮鞋色

eNavajoWhite 

纳瓦霍白

eOldLace 

老蕾丝色

eOliveDrab 

橄榄褐

eOrange 

橙色

eOrangeRed 

橙红色

eOrchid 

兰花紫

ePaleGoldenRod 

苍金棕色

ePaleGreen 

苍绿色

ePaleTurquoise 

苍青色

ePaleVioletRed 

苍紫红色

ePapayaWhip 

番木瓜色

ePeachPuff 

桃肉色

ePeru 

秘鲁色

ePink 

粉色

ePlum 

李子色

ePowderBlue 

粉末蓝

eRebeccaPurple 

丽贝卡紫

eRosyBrown 

玫瑰棕色

eRoyalBlue 

皇家蓝

eSaddleBrown 

马鞍棕

eSalmon 

鲑鱼色

eSandyBrown 

沙棕色

eSeaGreen 

海绿色

eSeaShell 

海贝壳色

eSienna 

赭石色

eSkyBlue 

天蓝色

eSlateBlue 

石板蓝

eSlateGray 

石板灰

eSlateGrey 

石板灰(与 eSlateGray 相同)

eSnow 

雪白色

eSpringGreen 

春绿色

eSteelBlue 

钢蓝色

eTan 

棕褐色

eThistle 

蓟色

eTomato 

番茄色

eTurquoise 

绿松石色

eViolet 

紫罗兰色

eWheat 

小麦色

eWhiteSmoke 

烟白色

eYellowGreen 

黄绿色

◆ ELogLevel

日志等级

枚举值
eDebug 

调试信息

eInfo 

一般信息

eWarning 

警告信息

eError 

错误信息

eCritical 

严重错误

eFatal 

致命错误

函数说明

◆ aColorToRGB()

A_CONSTEXPR_CXX14 void ast::aColorToRGB ( color_t color,
uint8_t & r,
uint8_t & g,
uint8_t & b )
inlinenoexcept

Color 类型转换为 RGB 颜色值

参数
color输入 Color
r输出红色分量(0-255)
g输出绿色分量(0-255)
b输出蓝色分量(0-255)

◆ aColorToRGBA()

A_CONSTEXPR_CXX14 void ast::aColorToRGBA ( color_t color,
uint8_t & r,
uint8_t & g,
uint8_t & b,
uint8_t & a )
inlinenoexcept

Color 类型转换为 RGBA 颜色值

参数
color输入 Color
r输出红色分量(0-255)
g输出绿色分量(0-255)
b输出蓝色分量(0-255)
a输出透明度分量(0-255)

◆ acosd()

A_ALWAYS_INLINE double ast::acosd ( double x)

计算反余弦(以度为单位)

参数
x余弦值(范围[-1, 1])
返回
角度(以度为单位)

◆ aDataDir() [1/2]

AST_UTIL_API std::string ast::aDataDir ( )

获取数据文件夹

注解
与 aDataDirGet 一样

◆ aDataDir() [2/2]

AST_UTIL_CAPI errc_t ast::aDataDir ( std::string & datadir)

获取数据文件夹

注解
与 aDataDirGet 一样

◆ aDataDirGetDefault() [1/2]

AST_UTIL_API std::string ast::aDataDirGetDefault ( )

获取默认数据文件夹 数据文件夹的顺序:

  1. AST_DATA_DIR 环境变量
  2. 动态库目录的data文件夹(AST_DATA_DIR_NAME)
  3. 可执行文件目录的data文件夹(AST_DATA_DIR_NAME)
  4. 当前运行目录的data文件夹(AST_DATA_DIR_NAME)
    返回

◆ aDataDirGetDefault() [2/2]

AST_UTIL_CAPI errc_t ast::aDataDirGetDefault ( std::string & datadir)

获取默认数据文件夹

参见
aDataDirGetDefault()
参数
[out]datadir默认数据文件夹路径
返回
错误码

◆ aDebugBreak()

AST_UTIL_CAPI void ast::aDebugBreak ( )

触发调试器中断

返回

◆ aFormatPolynomial()

AST_UTIL_API std::string ast::aFormatPolynomial ( const std::vector< double > & coeffs,
StringView varname )

将系数向量格式化为多项式表达式字符串

参数
coeffs系数向量,例如 {-1.0, 3.0, 2.0} 表示 2x^2 + 3x - 1
varname变量名,例如 "x"
返回
多项式表达式字符串,例如 "2x^2 + 3x - 1"

◆ aLightSpeed()

A_ALWAYS_INLINE double ast::aLightSpeed ( )
noexcept

获取真空中的光速

这个函数接口是为了应对未来可能允许在软件运行时修改光速的情况

返回
光速

◆ aNormalizeAngle()

A_ALWAYS_INLINE double ast::aNormalizeAngle ( double angle,
double center )

将角度量规范化到指定中心范围

参数
angle输入角度(弧度)
center中心角度(弧度)
返回
规范化后的角度 angle - k*2π, 其中k是整数,使得 angle - k*2π >= center - kPI

◆ aNormalizeAngle0To2Pi()

A_ALWAYS_INLINE double ast::aNormalizeAngle0To2Pi ( double angle)

将角度量规范化到 0 到 2π 范围

参数
angle输入角度(弧度)
返回
规范化后的角度(0 到 2π)

◆ aNormalizeAngleNeg2PiTo0()

A_ALWAYS_INLINE double ast::aNormalizeAngleNeg2PiTo0 ( double angle)

将角度量规范化到 -2π 到 0 范围

参数
angle输入角度(弧度)
返回
规范化后的角度(-2π 到 0)

◆ aNormalizeAngleNegPiToPi()

A_ALWAYS_INLINE double ast::aNormalizeAngleNegPiToPi ( double angle)

将角度量规范化到 -π 到 π 范围

参数
angle输入角度(弧度)
返回
规范化后的角度(-π 到 π)

◆ aNormalizeAngleStart()

A_ALWAYS_INLINE double ast::aNormalizeAngleStart ( double angle,
double start )

将角度量规范化到指定起始范围

参数
angle输入角度(弧度)
start起始角度(弧度)
返回
规范化后的角度 angle - k*2π, 其中k是整数,使得 angle - k*2π >= start

◆ aParsePolynomial() [1/2]

AST_UTIL_API errc_t ast::aParsePolynomial ( StringView content,
std::vector< double > & coeffs )

解析多项式表达式

参数
content多项式表达式字符串,例如 "2x^2 + 3x - 1"
coeffs输出参数,用于存储解析后的系数
返回
错误码

◆ aParsePolynomial() [2/2]

AST_UTIL_API errc_t ast::aParsePolynomial ( StringView content,
StringView varname,
std::vector< double > & coeffs )

解析多项式表达式

参数
content多项式表达式字符串,例如 "2x^2 + 3x - 1"
varname变量名,例如 "x"
coeffs输出参数,用于存储解析后的系数
返回
错误码

◆ asind()

A_ALWAYS_INLINE double ast::asind ( double x)

计算反正弦(以度为单位)

参数
x正弦值(范围[-1, 1])
返回
角度(以度为单位)

◆ atan2d()

A_ALWAYS_INLINE double ast::atan2d ( double y,
double x )

计算四象限反正切(以度为单位)

参数
y垂直坐标
x水平坐标
返回
角度(以度为单位)

◆ atand()

A_ALWAYS_INLINE double ast::atand ( double x)

计算反正切(以度为单位)

参数
x正切值
返回
角度(以度为单位)

◆ cosd()

A_ALWAYS_INLINE double ast::cosd ( double x)

计算余弦值(以度为单位)

参数
x角度(以度为单位)
返回
余弦值

◆ deg2rad()

A_ALWAYS_INLINE double ast::deg2rad ( double x)

将角度转换为弧度

参数
x输入角度
返回
转换后的弧度值

◆ eval()

double ast::Polynomial::eval ( double x) const
inline

计算多项式在给定值x处的函数值

参数
x给定值
返回
函数值

◆ rad2deg()

A_ALWAYS_INLINE double ast::rad2deg ( double x)

将弧度转换为角度

参数
x输入弧度
返回
转换后的角度值

◆ rgb()

color_t ast::rgb ( uint8_t r,
uint8_t g,
uint8_t b )
inlineconstexpr

将 RGB 颜色值转换为 Color 类型

参数
r红色分量(0-255)
g绿色分量(0-255)
b蓝色分量(0-255)
返回
对应的 Color

◆ rgba()

color_t ast::rgba ( uint8_t r,
uint8_t g,
uint8_t b,
uint8_t a )
inlineconstexpr

将 RGBA 颜色值转换为 Color 类型

参数
r红色分量(0-255)
g绿色分量(0-255)
b蓝色分量(0-255)
a透明度分量(0-255)
返回
对应的 Color

◆ sincos() [1/2]

A_ALWAYS_INLINE SinCos ast::sincos ( double x)

计算 sin 和 cos 值

参数
x输入角度(弧度)
返回
SinCos 对象,包含 sin(x) 和 cos(x) 的值

◆ sincos() [2/2]

A_ALWAYS_INLINE void ast::sincos ( double x,
double * psin,
double * pcos )

计算 sin(x) 和 cos(x) 值

参数
x输入角度(弧度)
psin指向 sin(x) 值的指针
pcos指向 cos(x) 值的指针

◆ sind()

A_ALWAYS_INLINE double ast::sind ( double x)

计算正弦值(以度为单位)

参数
x角度(以度为单位)
返回
正弦值

◆ tand()

A_ALWAYS_INLINE double ast::tand ( double x)

计算正切值(以度为单位)

参数
x角度(以度为单位)
返回
正切值