Mason 入门例子2 --- 增加操场空间和静态学生

1. 仿真例子简介

我们仿真许多学生或者教职工在操场之内漫游的例子。


2. 增加操场和静态的学生


现在建立一个操场,并且随机放置一些静态的学生,若不把这些Agents加入到Schedule中,他们是不会进行运动的。



import sim.engine.*;

import sim.util.*;
import sim.field.continuous.*;

public class Students extends SimState {
	private static final long serialVersionUID = 1L;
	public Continuous2D yard = new Continuous2D(1.0, 100, 100);
	public int numStudents = 50;

	public Students(long seed) {
		super(seed);
	}

	public void start() {
		super.start();
		// clear the yard
		yard.clear();
	
		// add some students to the yard
		for (int i = 0; i < numStudents; i++) {
			Student student = new Student();
			yard.setObjectLocation(student, new Double2D(yard.getWidth() * 0.5
					+ random.nextDouble() - 0.5, yard.getHeight() * 0.5
					+ random.nextDouble() - 0.5));
		}
	}

	public static void main(String[] args) {
		doLoop(Students.class, args);
		System.exit(0);
	}
}


学生类:

public class Student {

}


空间表示:在GUI中被称为Fields,有一些内置的fields我们可以使用。

例如: Continuous2D定义了由实数值表示的2维环境,我们可以限定边界和范围,也可以不限定。它能存储许多对象,并且把对象与其2维坐标(Double2D)联系起来。

PS. Point2D.Double是可变的,不如Double2D安全。

 

我们增加了Start方法,用于初始化Simulation。

在本例中我们在start中清理所有对象,然后随机放置学生,仿真开始后立刻就终止了。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Anyanyamy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值