当前位置: 首页>>代码示例>>C#>>正文


C# Particle.AddForce方法代码示例

本文整理汇总了C#中Particle.AddForce方法的典型用法代码示例。如果您正苦于以下问题:C# Particle.AddForce方法的具体用法?C# Particle.AddForce怎么用?C# Particle.AddForce使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Particle的用法示例。


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

示例1: UpdateForce

 public override void UpdateForce(Particle particle, float duaration)
 {
     float depth = particle.Position.Y;
     if (depth >= WaterHeight + MaxDepth) return;
     Vector3 force = new Vector3();
     if (depth <= WaterHeight - MaxDepth)
     {
         force.Y = LiquidDensity * Volume;
         particle.AddForce(force);
         return;
     }
     // Otherwise we are partly submerged.
     force.Y = LiquidDensity * Volume * (depth - MaxDepth - WaterHeight) / 2 * MaxDepth;
     particle.AddForce(force);
 }
开发者ID:JointJBA,项目名称:DisqueEngine,代码行数:15,代码来源:Buoyancy.cs

示例2: UpdateForce

 public override void UpdateForce(Particle particle, float duaration)
 {
     Vector3 force = particle.Velocity;
     float dragcoef = force.Magnitude;
     dragcoef = K1 * dragcoef * K2 * dragcoef * dragcoef;
     force.Normalize();
     force *= -dragcoef;
     particle.AddForce(force);
 }
开发者ID:JointJBA,项目名称:DisqueEngine,代码行数:9,代码来源:Drag.cs

示例3: UpdateForce

 public override void UpdateForce(Particle particle, float duaration)
 {
     Vector3 force = particle.Position;
     force -= Other.Position;
     float magnit = force.Magnitude;
     magnit = MathHelper.Abs(magnit - RestLength);
     magnit *= SpringConstant;
     force.Normalize();
     force *= -magnit;
     particle.AddForce(force);
 }
开发者ID:JointJBA,项目名称:DisqueEngine,代码行数:11,代码来源:Spring.cs

示例4: UpdateForce

 public override void UpdateForce(Particle particle, float duaration)
 {
     Vector3 force = particle.Position;
     force -= Other.Position;
     float magnitude = force.Magnitude;
     if (magnitude <= RestLength) return;
     magnitude = SpringConstant * (RestLength - magnitude);
     force.Normalize();
     force *= -magnitude;
     particle.AddForce(force);
 }
开发者ID:JointJBA,项目名称:DisqueEngine,代码行数:11,代码来源:Bungee.cs

示例5: UpdateForce

 public override void UpdateForce(Particle particle, float duration)
 {
     if (!(particle.Mass > 0.0f)) return;
     Vector3 position = particle.Position;
     position -= Anchor;
     float gamma = 0.5f * MathHelper.Sqrt((4 * SpringConstant - Damping * Damping));
     if (gamma == 0.0f) return;
     Vector3 c = position * (Damping / (2.0f * gamma)) +
     particle.Velocity * (1.0f / gamma);
     Vector3 target = position * MathHelper.Cos(gamma * duration) +
     c * MathHelper.Sin(gamma * duration);
     target *= MathHelper.Exp(-0.5f * duration * Damping);
     Vector3 accel = (target - position) * (1.0f / duration * duration) -
     particle.Velocity * duration;
     particle.AddForce(accel * particle.Mass);
 }
开发者ID:JointJBA,项目名称:DisqueEngine,代码行数:16,代码来源:FakeSpring.cs

示例6: Particle

		public void Integrate_CanAddForcesTogether_AndWithCombinedForcesAddedToGravity_WhenIntegrating_ParticlesVelocityIsUpdated()
		{
			var particleNoForces = new Particle(Vector3.ZeroVector, Vector3.ZeroVector, 0.5);
			var particleWithForces = new Particle(Vector3.ZeroVector, Vector3.ZeroVector, 0.5);

			for (var i = 0; i < 5; i++)
			{
				particleWithForces.AddForce(new Vector3(0.5, 1.0, 1.5));
			}

			particleNoForces.Integrate(1.0);
			particleWithForces.Integrate(1.0);

			Assert.IsTrue(particleNoForces.Velocity.Equals(new Vector3(0.0, -10.0, 0.0)));
			Assert.IsTrue(particleWithForces.Velocity.Equals(new Vector3(1.25, -7.5, 3.75)));
		}
开发者ID:dazpaz,项目名称:Cyclone,代码行数:16,代码来源:ParticleTests.cs

示例7: Integrate_IfTheMassOfTheParticleIsInfinite_ForcesOtherThanGravityHaveNoEffect

		public void Integrate_IfTheMassOfTheParticleIsInfinite_ForcesOtherThanGravityHaveNoEffect()
		{
			var particleNoForces = new Particle();
			var particleForces = new Particle();

			particleForces.AddForce(new Vector3(3.0, 4.0, 5.0));

			particleNoForces.Integrate(1.0);
			particleForces.Integrate(1.0);

			Assert.IsTrue(particleForces.Position.Equals(particleNoForces.Position));
		}
开发者ID:dazpaz,项目名称:Cyclone,代码行数:12,代码来源:ParticleTests.cs


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