Флэш-приложения: механика

Материал из Department of Theoretical and Applied Mechanics
Перейти к: навигация, поиск
Кафедра ТМ > Программирование > Интернет > Флэш > Механика
Кафедра ТМ > Интересные ссылки > Механика

На этой странице располагаются простые флэш-приложения, демонстрирующие интересные процессы, относящиеся к механике и смежным областям знаний.

Случайное блуждание[править]

Случайное блуждание — процесс, состоящий из последовательного суммирования случайных шагов. Имеет огромное количество приложений в самых различных областях знаний — например броуновское движение частицы в жидкости или колебания цен на бирже. Ниже представлена простейшая модель двумерного случайного блуждания — на каждом шаге к координатам точки с равной вероятностью добавляется -1, 0 или 1. Для наглядности также случайно меняется цвет точки.

play=true|height=640|width=800</flash>


Со случайным блужданием связано много интересных математических фактов, скажем, в двумерном случае вероятность возвращения точки в исходное положение — единица, а матожидание времени возвращения — бесконечность. В трехмерном случае вероятность возвращения уже меньше единицы. Ниже представлены реализации того же приложения в меньших окнах, позволяющие сравнить несколько случайных блужданий.


play=true|height=320|width=400</flash> play=true|height=320|width=400</flash> play=true|height=320|width=400</flash>


Текст программы на языке ActionScript 3.0 (разработчики А. Кривцов, А. Пшенов): <toggledisplay status=hide showtext="Показать↓" hidetext="Скрыть↑" linkstyle="font-size:default">

 1 package 
 2 {
 3 	import flash.display.Shape;
 4 	import flash.display.Sprite;
 5 	import flash.events.Event;
 6 	
 7 	public class Main extends Sprite 
 8 	{
 9 		public var start : Number = 0;
10 		public var d : Number;
11 
12 		public function Rand() : Number
13 		{
14 			return Math.floor(3 * Math.random()) - 1;
15 		}
16 		
17 		public function RandomWalk(e:Event) : void
18 		{
19 			if (start == 0) 
20 			{
21 				start = 1;
22 				d = 10;
23 				x = stage.stageWidth / 2;
24 				y = stage.stageHeight / 2;
25 			} 
26 			else
27 			{
28 				x = x + d * Rand();
29 				y = y + d * Rand();
30 				if (x < 0) x = x + stage.stageWidth;
31 				if (x > stage.stageWidth) x = x - stage.stageWidth;
32 				if (y < 0) y = y + stage.stageHeight;
33 				if (y > stage.stageHeight) y = y - stage.stageHeight;
34 			}
35 			
36 			var s : Shape = new Shape();
37 			
38 			var colour : uint = Math.floor(Math.random() * 0xffffff);
39 			s.graphics.beginFill(colour, 1);
40 			
41 			s.graphics.drawRect(x, y, d-1, d-1);
42 			
43 			stage.addChild(s);
44 		}
45 		
46 		public function Main():void 
47 		{
48 			stage.addEventListener(Event.ENTER_FRAME, RandomWalk);
49 		}
50 		
51 	}
52 	
53 }

</toggledisplay>

См. также[править]