⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 worldobjectstate.java.svn-base

📁 這是一個JAVA語言寫的多代理人程式用來模擬飛機起飛或是降落的程式
💻 SVN-BASE
字号:
package base;import java.util.*;/** * CSCI 201 FAA Project - Spring 2009 - Team 4c *  * Describes the state of a world object. *  * @author Josh Villbrandt */public class WorldObjectState {	// Private	public Date thisUpdate, lastUpdate = new Date();		// Object Properties	public List<WorldVector> vertices = new ArrayList<WorldVector>();	public List<WorldVector> connections = new ArrayList<WorldVector>();	public double mass = 0;	public double momentOfInertia = 0;		// Radial (radians)	public WorldVector angularPosition = new WorldVector(); // deviation from the heading	public WorldVector angularVelocity = new WorldVector();	public WorldVector angularAcceleration = new WorldVector();	public WorldVector angularForce = new WorldVector(); // this is torque / moment		// Linear	public WorldVector position = new WorldVector();	public WorldVector velocity = new WorldVector();	public WorldVector heading = new WorldVector(true); // Unit vector of the last known velocity	public WorldVector acceleration = new WorldVector();	public WorldVector force = new WorldVector();		public WorldObjectState() {	}		public WorldObjectState(WorldVector initialPosition) {		this.position = new WorldVector(initialPosition);	}		public WorldObjectState(WorldVector initialPosition, WorldVector initialHeading, List<WorldVector> vertices) {		this.position = new WorldVector(initialPosition);		this.heading = new WorldVector(initialHeading);		this.vertices = vertices;	}		public WorldObjectState(WorldVector initialPosition, List<WorldVector> vertices) {		this.position = new WorldVector(initialPosition);		this.vertices = vertices;	}		public WorldObjectState(WorldVector initialPosition, List<WorldVector> vertices, List<WorldVector> connections) {		this.position = new WorldVector(initialPosition);		this.vertices = vertices;		this.connections = connections;	}		public WorldObjectState(WorldObjectState objectState) {		this.heading = objectState.heading;		this.position = objectState.position;		this.velocity = objectState.velocity;		this.acceleration = objectState.acceleration;		this.mass = objectState.mass;		this.force = objectState.force;	}		public void update() {		thisUpdate = new Date();		double t = (double)((thisUpdate.getTime() - lastUpdate.getTime())) / 1000;		lastUpdate = thisUpdate;		// x = vt + 1/2 * at^2		position = ((WorldVector) position).plus(((WorldVector) velocity).times(t).plus(((WorldVector) acceleration).times(t*t/2)));		angularPosition = ((WorldVector) angularPosition).plus(((WorldVector) angularVelocity).times(t).plus(((WorldVector) angularAcceleration).times(t*t/2)));				// v = at		angularVelocity = ((WorldVector) angularVelocity).plus(((WorldVector) angularAcceleration).times(t));		velocity = ((WorldVector) velocity).plus(((WorldVector) acceleration).times(t));		if(velocity.magnitude() != 0) heading = new WorldVector(velocity, true);				// a = f / m		if(momentOfInertia != 0) angularAcceleration = ((WorldVector) angularForce).times(1/momentOfInertia);		if(mass != 0) acceleration = ((WorldVector) force).times(1/mass);	}		public WorldVector get_position() {		return position;	}		public List<WorldVector> getConnections() {		return connections;	}		public void add_connection(WorldVector v) {		connections.add(v);	}		public List<WorldVector> get_vertices() {		return vertices;	}		public void set_velocity(WorldVector v) {		this.velocity = new WorldVector(v.x, v.y, v.z);	}		public WorldVector get_velocity() {		return this.velocity;	}		public void set_position(WorldVector v) {		position = v;	}		public void set_angular_velocity(WorldVector v) {		angularVelocity = v;	}		public String toString() {		return "{position: " + position + ", velocity: " + velocity + ", acceleration: " + acceleration + "}";	}	}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -