• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ Velocity类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C++中Velocity的典型用法代码示例。如果您正苦于以下问题:C++ Velocity类的具体用法?C++ Velocity怎么用?C++ Velocity使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



在下文中一共展示了Velocity类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: WCV_interval

// Assumes 0 <= B < T
LossData WCV_tvar::WCV_interval(const Vect3& so, const Velocity& vo, const Vect3& si, const Velocity& vi, double B, double T) const {
  double time_in = T;
  double time_out = B;

  Vect2 so2 = so.vect2();
  Vect2 si2 = si.vect2();
  Vect2 s2 = so2.Sub(si2);
  Vect2 vo2 = vo.vect2();
  Vect2 vi2 = vi.vect2();
  Vect2 v2 = vo2.Sub(vi2);
  double sz = so.z-si.z;
  double vz = vo.z-vi.z;

  Interval ii = wcv_vertical->vertical_WCV_interval(table.getZTHR(),table.getTCOA(),B,T,sz,vz);

  if (ii.low > ii.up) {
    return LossData(time_in,time_out);
  }
  Vect2 step = v2.ScalAdd(ii.low,s2);
  if (Util::almost_equals(ii.low,ii.up)) { // [CAM] Changed from == to almost_equals to mitigate numerical problems
    if (horizontal_WCV(step,v2)) {
      time_in = ii.low;
      time_out = ii.up;
    }
    return LossData(time_in,time_out);
  }
  LossData ld = horizontal_WCV_interval(ii.up-ii.low,step,v2);
  time_in = ld.getTimeIn() + ii.low;
  time_out = ld.getTimeOut() + ii.low;
  return LossData(time_in,time_out);
}
开发者ID:,项目名称:,代码行数:32,代码来源:


示例2: SolveAccelerationProblems1

void SolveAccelerationProblems1()
{
  //1. A flower pot falls from a windowsill 25.0 m above the sidewalk.   
  //   How much time does a person below have to move out of the way?  
  //   How fast is the flower pot moving when it strikes the ground? 
  Meter const potfalls( 25. );
  SquareSecond const falloffsquaretime = (potfalls * 2.) / Acceleration3( 9.8 );
  Second const rep1 = sqrt( falloffsquaretime );
  Velocity const rep1_2 = potfalls / rep1;
  Scalar const _rep1 = rep1.GetValue();
  Scalar const _rep1_2 = rep1_2.GetValue();
  Assert( fequal( _rep1, 2.2587697572631282 ) );
  Assert( fequal( _rep1_2, 11.067971810589327  ) );

  //2. A plane, starting from rest at one end of a runway, undergoes a 
  //   constant acceleration of 1.6 m/s2 for a distance of 1600 m before 
  //   takeoff.  What is its speed upon takeoff?  What is the time required 
  //   for takeoff?
  Meter const planedistance( 1600. );
  SquareSecond const squaretime2 = (planedistance * 2.) / Acceleration3( 1.6 );
  Second const rep2 = sqrt( squaretime2 );
  Velocity const rep2_2 = planedistance / rep2;
  Scalar const _rep2 = rep2.GetValue();
  Scalar const _rep2_2 = rep2_2.GetValue(); 
  Assert( fequal( _rep2, 44.721359549995796 ) );
  Assert( fequal( _rep2_2, 35.777087639996637 ) );

}
开发者ID:,项目名称:,代码行数:28,代码来源:


示例3: interact

/**********************************************************
 * SHIP :: interact()
 ***********************************************************/
void Ship :: interact(const Interface & pUI, void * asteroids)
{
   orientation += pUI.isLeft() * TURN_RADIUS;
   orientation -= pUI.isRight() * TURN_RADIUS;

   if (pUI.isUp())
   {
      thrustOn = true;
      Velocity thrust;
      thrust.setDx(THRUST *std::cos(deg2rad(orientation + 90)));
      thrust.setDy(THRUST * std::sin(deg2rad(orientation + 90)));
      v += thrust;
   }
   else
      thrustOn = false;
   
   if (pUI.isSpace())
   {
      Asteroids * pAsteroids = (Asteroids *)asteroids;
      pAsteroids->addItem(new Bullet(v, orientation));
      
   }

   
}
开发者ID:hjcoder18,项目名称:Asteroids-Game,代码行数:28,代码来源:ship.cpp


示例4: start

void Receiver1D::removeDirectArrival(const Source& source,
    const Velocity& velocity, float t_width)
{
  float dt = this->getDt();
  int half_len = t_width / dt;

  /// get the velocity average in a range
  int z_min = std::min(source.getDepth(), this->getDepth());
  int z_max = std::max(source.getDepth(), this->getDepth());

  int s[] = {z_min, 0};
  int e[] = {z_max, velocity.getNx()};

  std::vector<int> start(s, s + 2);
  std::vector<int> end(e, e + 2);
  float vel_avg = velocity.getAverageRange(start, end);

  const int nx = this->getGeometryDim()[0];
  for (int ix = 0; ix < nx; ix++) {
    std::vector<int> currRcvLoc, sourceLoc;
    sourceLoc.push_back(source.getDepth());
    sourceLoc.push_back(source.getGeometryOrigin()[0]);
    currRcvLoc.push_back(getDepth());
    currRcvLoc.push_back(getGeometryOrigin()[0] + getGeometryDelta()[0] * ix);
    const float dist2 = variance(sourceLoc, currRcvLoc);

    int tstart = std::sqrt(dist2 * vel_avg);
    int tend = ((tstart + 2 * half_len) > this->getNt()) ? this->getNt() : (tstart + 2 * half_len);

    float *p = &mData[ix * getNt()];
    std::fill(p + tstart, p + tend, 0);
  }

}
开发者ID:conghui,项目名称:congreyhee,代码行数:34,代码来源:receiver1d.cpp


示例5: MediumRock

/**********************************************************
 * MEDIUMROCK constructor
 ***********************************************************/
MediumRock :: MediumRock(Velocity bigV)
{
   setPoint(bigV.getX(), bigV.getY());
   
   v.setDx(random(-MED_SPEED, MED_SPEED));
   v.setDy(random(-MED_SPEED, MED_SPEED));
   v += bigV;
}
开发者ID:hjcoder18,项目名称:Asteroids-Game,代码行数:11,代码来源:rock.cpp


示例6: SmallRock

/**********************************************************
 * SMALLROCK constructor
 ***********************************************************/
SmallRock :: SmallRock(Velocity biggerV)
{
   setPoint(biggerV.getX(), biggerV.getY());

   v.setDx(random(-SM_SPEED, SM_SPEED));
   v.setDy(random(-SM_SPEED, SM_SPEED));
   v += biggerV;
}
开发者ID:hjcoder18,项目名称:Asteroids-Game,代码行数:11,代码来源:rock.cpp


示例7: principia__BubbleVelocityCorrection

XYZ principia__BubbleVelocityCorrection(Plugin const* const plugin,
                                        int const reference_body_index) {
  journal::Method<journal::BubbleVelocityCorrection> m({plugin,
                                                        reference_body_index});
  CHECK_NOTNULL(plugin);
  Velocity<World> const result =
      plugin->BubbleVelocityCorrection(reference_body_index);
  return m.Return(ToXYZ(result.coordinates() / (Metre / Second)));
}
开发者ID:pdn4kd,项目名称:Principia,代码行数:9,代码来源:interface.cpp


示例8: conflict

bool KinematicIntegerBands::conflict(Detection3D* det, const Vect3& so, const Velocity& vo, const Vect3& si, const Velocity& vi,
    double B, double T) {
  if (Util::almost_equals(B,T)) {
    Vect3 sot = vo.ScalAdd(B,so);
    Vect3 sit = vi.ScalAdd(B,si);
    return det->violation(sot,vo,sit,vi);
  }
  return det->conflict(so,vo,si,vi,B,T);
}
开发者ID:,项目名称:,代码行数:9,代码来源:


示例9:

std::pair<LatLonAlt,Velocity> KinematicsLatLon::vsAccel(const LatLonAlt& so, const Velocity& vo,  double t, double a) {
	double dist = vo.gs()*t;
	double currentTrk = vo.trk();
	LatLonAlt sn = GreatCircle::linear_initial(so, currentTrk, dist);
	double nsz = so.alt() + vo.z*t + 0.5*a*t*t;
	sn = sn.mkAlt(nsz);
	Velocity  vn = vo.mkVs(vo.z + a*t);
	return std::pair<LatLonAlt,Velocity>(sn,vn);
}
开发者ID:nasa,项目名称:WellClear,代码行数:9,代码来源:KinematicsLatLon.cpp


示例10: violation

bool WCV_tvar::violation(const Vect3& so, const Velocity& vo, const Vect3& si, const Velocity& vi) const {
  Vect2 so2 = so.vect2();
  Vect2 si2 = si.vect2();
  Vect2 s2 = so2.Sub(si2);
  Vect2 vo2 = vo.vect2();
  Vect2 vi2 = vi.vect2();
  Vect2 v2 = vo2.Sub(vi2);
  return horizontal_WCV(s2,v2) &&
      wcv_vertical->vertical_WCV(table.getZTHR(),table.getTCOA(),so.z-si.z,vo.z-vi.z);
}
开发者ID:,项目名称:,代码行数:10,代码来源:


示例11: getControl

Velocity PlanningProblem::getControl(uint i)
{
    Velocity c;
    if(i < trajec.length()) {
        Station st = trajec.getStation(i);
        c = st.getVelocity();
    }
    else
        c.setZero();
    return c;
}
开发者ID:amiryanj,项目名称:cyrus_ssl,代码行数:11,代码来源:planningproblem.cpp


示例12: move

void Item::move()
{
   Velocity     v = this->getVelocity();
   Point    slope = v.getSlope();
   Point location = this->getLocation();

   location.addX(slope.getX());
   location.addY(slope.getY());

   this->setLocation(location);
}
开发者ID:scanalyzer,项目名称:skeet2,代码行数:11,代码来源:item.cpp


示例13: getRandomVelocity

    Velocity Solver::getRandomVelocity()
    {
        Velocity velocity;

        for (int i = 0; i < currentProblem->n; ++i) {
            double randomVariable = getRandomDoubleValue(0.0, 1.0);

            velocity.push_back(randomVariable);
        }

        return velocity;
    }
开发者ID:JeGa,项目名称:mknap_pso,代码行数:12,代码来源:Solver.cpp


示例14: getRandomIntegerValue

    void Solver::findSolution()
    {
        for (auto &i : swarm.getParticles()) {
            Velocity newVelocity;
            Solution newPosition;

            /**
             * Iterate through all dimensions of a Solution/position
             * to calculate the new velocity and update the position.
             *
             * j = dimension
             */
            for (int j = 0; j < currentProblem->n; ++j) {
                int currentPositionD = i.getPosition().at(j);
                double currentVelocityD = i.getVelocity().at(j);

                int pBestD = i.getBestPosition().at(j);
                int gBestD = swarm.getBestPosition().at(j);

                int randomParticleNumber = getRandomIntegerValue(0, 1);
                int randomGlobalNumber = getRandomIntegerValue(0, 1);

                double newVelocityD = parameters.getInertiaWeight() * currentVelocityD +
                                      parameters.getConstant1() * randomParticleNumber * (pBestD - currentPositionD) +
                                      parameters.getConstant2() * randomGlobalNumber * (gBestD - currentPositionD);

                if (newVelocityD > parameters.getVMax())
                    newVelocityD = parameters.getVMax();
                else if (newVelocityD < -parameters.getVMax())
                    newVelocityD = -parameters.getVMax();

                int newPositionD = updateStrategy->updatePosition(currentPositionD, newVelocityD);

                newVelocity.push_back(newVelocityD);
                newPosition.push_back(newPositionD);
            }

            i.setVelocity(newVelocity);
            i.setPosition(newPosition);

            int pBestTmp = calculateProfit(i.getPosition());
            pBestTmp -= calculatePenalty(i.getPosition(), pBestTmp);

            // Update pBest and gBest position/solution
            if (pBestTmp > i.getBestValue()) {
                i.setBestPositionAndValue(i.getPosition(), pBestTmp);

                if (pBestTmp > swarm.getBestValue())
                    swarm.setBestPositionAndValue(i.getPosition(), pBestTmp);
            }
        }
    }
开发者ID:JeGa,项目名称:mknap_pso,代码行数:52,代码来源:Solver.cpp


示例15: 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);
	}
}
开发者ID:E-LLP,项目名称:WellClear,代码行数:13,代码来源:ProjectedKinematics.cpp


示例16: timeOfIntersection

/**
 * Computes 2D intersection point of two lines, but also finds z component (projected by time from line 1)
 * @param s0 starting point of line 1
 * @param v0 direction vector for line 1
 * @param s1 starting point of line 2
 * @param v1 direction vector of line 2
 * @return Pair (2-dimensional point of intersection with 3D projection, relative time of intersection, relative to the so3)
 * If the lines are parallel, this returns the pair (0,NaN).
 */
double  VectFuns::timeOfIntersection(const Vect3& so3, const Velocity& vo3, const Vect3& si3, const Velocity& vi3) {
	Vect2 so = so3.vect2();
	Vect2 vo = vo3.vect2();
	Vect2 si = si3.vect2();
	Vect2 vi = vi3.vect2();
	Vect2 ds = si.Sub(so);
	if (vo.det(vi) == 0) {
		//f.pln(" $$$ intersection: lines are parallel");
		return NaN;
	}
	double tt = ds.det(vi)/vo.det(vi);
	//f.pln(" $$$ intersection: tt = "+tt);
	return tt;
}
开发者ID:nasa,项目名称:WellClear,代码行数:23,代码来源:VectFuns.cpp


示例17: trajectory

bool KinematicIntegerBands::cd_future_traj(Detection3D* det, double B, double T, bool trajdir, double t,
    const TrafficState& ownship, const TrafficState& ac) const {
  if (t > T || B > T) return false;
  std::pair<Vect3,Velocity> sovot = trajectory(ownship,t,trajdir);
  Vect3 sot = sovot.first;
  Velocity vot = sovot.second;
  Vect3 si = ac.get_s();
  Velocity vi = ac.get_v();
  Vect3 sit = vi.ScalAdd(t,si);
  if (B > t) {
    return conflict(det, sot, vot, sit, vi, B-t, T-t);
  }
  return conflict(det, sot, vot, sit, vi, 0, T-t);
}
开发者ID:,项目名称:,代码行数:14,代码来源:


示例18: writeState

	void StateWriter::writeState(const std::string& name, double time, const Position& p, const Velocity& v) {
		if (first_line) {
			latlon = p.isLatLon();
			output.setOutputUnits(display_units);

			// Comments and parameters are handled by SeparatedOutput
			
			output.addHeading("name", "unitless");
			if (display_time) {
				output.addHeading("time", "s");				
			}
			if (latlon) {
				output.addHeading("lat",  "deg");
				output.addHeading("lon",  "deg");
				output.addHeading("alt",  "ft");
			} else {
				output.addHeading("sx",   "NM");
				output.addHeading("sy",   "NM");
				output.addHeading("sz",   "ft");
			}
			if (velocity) {
				if (trkgsvs) {
					output.addHeading("trk", "deg");
					output.addHeading("gs",  "knot");
					output.addHeading("vs",  "fpm");
				} else {
					output.addHeading("vx",  "knot");
					output.addHeading("vy",  "knot");
					output.addHeading("vz",  "fpm");
				}
			}
			
			first_line = false;
		}
		output.addColumn(name);
		if (display_time) {
			output.addColumn(FmPrecision(time,precision));			
		}
		output.addColumn(p.toStringList(precision));
		if (velocity) {
			if (trkgsvs) {
				output.addColumn(v.toStringList(precision));							
			} else {
				output.addColumn(v.toStringXYZList(precision));											
			}
		}
		lines++;
		output.writeLine();		
	}	
开发者ID:nasa,项目名称:WellClear,代码行数:49,代码来源:StateWriter.cpp


示例19: VesselWorldVelocity

XYZ VesselWorldVelocity(Plugin const* const plugin,
                        char const* vessel_guid,
                        XYZ const parent_world_velocity,
                        double const parent_rotation_period) {
  Velocity<World> result = CHECK_NOTNULL(plugin)->VesselWorldVelocity(
      vessel_guid,
      Velocity<World>({parent_world_velocity.x * Metre / Second,
                       parent_world_velocity.y * Metre / Second,
                       parent_world_velocity.z * Metre / Second}),
      parent_rotation_period * Second);
  R3Element<Speed> const& coordinates = result.coordinates();
  return XYZ{coordinates.x / (Metre / Second),
             coordinates.y / (Metre / Second),
             coordinates.z / (Metre / Second)};
}
开发者ID:tnuvoletta,项目名称:Principia,代码行数:15,代码来源:interface.cpp


示例20: turnRadiusByRate

 std::pair<LatLonAlt,Velocity> KinematicsLatLon::turnOmegaAlt(const LatLonAlt& so, const Velocity& vo, double t, double omega) {
   double currentTrk = vo.trk();
   double perpTrk;
   if (omega > 0.0) {
     perpTrk = currentTrk+M_PI/2;
   } else {
     perpTrk = currentTrk-M_PI/2;
   }
   double radius = turnRadiusByRate(vo.gs(), omega);
   LatLonAlt center = GreatCircle::linear_initial(so, perpTrk, radius);
   //f.pln("center="+center);
   LatLonAlt sn = GreatCircle::small_circle_rotation(so,center,omega*t).mkAlt(so.alt()+vo.z*t);
   double finalPerpTrk = GreatCircle::initial_course(sn,center);
   double nTrk = finalPerpTrk - M_PI/2 * Util::sign(omega);
   Velocity vn = vo.mkTrk(nTrk);  
   return std::pair<LatLonAlt,Velocity>(sn,vn);		
 }
开发者ID:nasa,项目名称:WellClear,代码行数:17,代码来源:KinematicsLatLon.cpp



注:本文中的Velocity类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ VerboseOperationEnvironment类代码示例发布时间:2022-05-31
下一篇:
C++ Vehicle类代码示例发布时间:2022-05-31
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap