public void Run() { Vec v = new Vec(1.0,1.0); Console.WriteLine("v={0}", v); v = v.Scale(5.0).Add(new Vec(3.0,-2.0)); Console.WriteLine("v={0}", v); }
void OnMouseUp(object sender, MouseEventArgs a) { if (a.Button == MouseButtons.Left && !mouseDownLocation.IsEmpty) { U.show("OnMouseUp"); var s = new Sprite(images[curimage], 0.0F); s.Position = new Vec(mouseDownLocation); Vec spd = new Vec(a.Location).Subtract(s.Position).Scale(0.4); var speedlen = spd.Length; if (speedlen > U.maxspeed) { spd = spd.Scale(U.maxspeed / speedlen); } else if (speedlen < U.minspeed) { // make random speed double alpha = Math.PI * 2.0 * random.NextDouble(); speedlen = (random.NextDouble() * (U.maxspeed - U.minspeed) + U.minspeed); spd = Vec.Dir(alpha).Scale(speedlen); } s.Speed = spd; s.Rotation = (float)(random.NextDouble() - 0.5) * 10.0F; sprites.Add(s); mouseDownLocation = new Point(); mouseLastLocation = mouseDownLocation; } else if (a.Button == MouseButtons.Right) { curimage += 1; if (curimage >= images.Count) { curimage = 0; } prototype = new Sprite(images[curimage], 0.0F); } }
void OnMouseUp(object sender, MouseEventArgs a) { if (a.Button == MouseButtons.Left && !mouseDownLocation.IsEmpty) { U.show("OnMouseUp"); var s = new Sprite(images[curimage], 0.0F); s.Position = new Vec(mouseDownLocation); Vec spd = new Vec(a.Location).Subtract(s.Position).Scale(0.4); var speedlen = spd.Length; if (speedlen > U.maxspeed) { spd = spd.Scale(U.maxspeed/speedlen); } else if (speedlen < U.minspeed) { // make random speed double alpha = Math.PI * 2.0 * random.NextDouble(); speedlen = (random.NextDouble() * (U.maxspeed-U.minspeed) + U.minspeed); spd = Vec.Dir(alpha).Scale(speedlen); } s.Speed = spd; s.Rotation = (float)(random.NextDouble() - 0.5) * 10.0F; sprites.Add(s); mouseDownLocation = new Point(); mouseLastLocation = mouseDownLocation; } else if (a.Button == MouseButtons.Right) { curimage += 1; if (curimage >= images.Count) { curimage = 0; } prototype = new Sprite(images[curimage], 0.0F); } }
// return a tangental projection public Vec Project(Vec v) { return(v.Scale(this.Scalar(v) / v.Length2)); }
// return a tangental projection public Vec Project(Vec v) { return v.Scale(this.Scalar(v)/v.Length2); }
public void SetEndTime(double t) { time1 = t; pos1 = pos0.Add(speed.Scale(DeltaTime)); collision = null; // since we have limited the rib }
private void setSpeed(Vec spd) { speed = spd; pos1 = pos0.Add(speed.Scale(DeltaTime)); collision = null; }