本文整理汇总了C++中Velocity::vs方法的典型用法代码示例。如果您正苦于以下问题:C++ Velocity::vs方法的具体用法?C++ Velocity::vs怎么用?C++ Velocity::vs使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Velocity
的用法示例。
在下文中一共展示了Velocity::vs方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: createProjection
std::pair<Position,Velocity> ProjectedKinematics::gsAccel(const Position& so, const Velocity& vo, double t, double a) {
Vect3 s3 = so.point();
if (so.isLatLon()) {
s3 = Projection::createProjection(so.lla().zeroAlt()).project(so);
}
Vect3 pres = Kinematics::gsAccelPos(s3,vo,t,a);
Velocity vres = Velocity::mkTrkGsVs(vo.trk(),vo.gs()+a*t,vo.vs());
if (so.isLatLon()) {
return Projection::createProjection(so.lla().zeroAlt()).inverse(pres,vres,true);
} else {
return std::pair<Position,Velocity>(Position(pres), vres);
}
}
示例2: vsAccel
std::pair<LatLonAlt,Velocity> KinematicsLatLon::vsAccelUntil(const LatLonAlt& so, const Velocity& vo, double t, double goalVs, double vsAccel_d) {
if (vsAccel_d < 0 ) {
fpln("Kinematics::vsAccelUntil: user supplied negative vsAccel!!");
vsAccel_d = -vsAccel_d; // make sure user supplies positive value
}
double accelTime = Kinematics::vsAccelTime(vo,goalVs, vsAccel_d);
int sgn = 1;
if (goalVs < vo.vs()) sgn = -1;
//LatLonAlt ns = LatLonAlt.ZERO;
if (t <= accelTime)
return vsAccel(so, vo, t, sgn*vsAccel_d);
else {
LatLonAlt posEnd = vsAccel(so,vo,accelTime,sgn*vsAccel_d).first;
Velocity nvo = Velocity::mkVxyz(vo.x,vo.y, goalVs);
return linear(posEnd,nvo,t-accelTime);
}
}
示例3: interpolateVelocity
// f should be between 0 and 1 to interpolate
Velocity VectFuns::interpolateVelocity(const Velocity& v1, const Velocity& v2, double f) {
double newtrk = v1.trk() + f*(v2.trk() - v1.trk());
double newgs = v1.gs() + f*(v2.gs() - v1.gs());
double newvs = v1.vs() + f*(v2.vs() - v1.vs());
return Velocity::mkTrkGsVs(newtrk,newgs,newvs);
}