Четверг, 09.01.2025
Veritas lux mea
Меню сайта
Категории раздела
Разное [3]
Просто интересный материал
Физикам [6]
материалы для студентов физико-технического факультета
Маркетологам [3]
Статьи для студентов-маркетологов
Наш опрос
Укажите, что лишнее
Всего ответов: 24
Статистика

Онлайн всего: 2
Гостей: 2
Пользователей: 0
Форма входа
Сегодня
Главная » Статьи » Физикам

Модель броуновского движения
Как известно, броуновское движение - это хаотическое движение микрочастиц - следствие молекулярных соударений. В приведенной ниже программе мы не станем моделировать процессов соударений, а проиллюстрируем броуновской движение на примере одной частицы, совершающей небольшие случайные перемещения. В программе будет использоваться анимация, построенная с помощью OpenGL и функций, перечисленных в заголовочном файле XGL.H.

#include "xgl.h"
#include <iostream>
#include <stdlib.h>
#include <ctime>
using namespace std;

double x_win=400,y_win=400,// размеры окна в пикселах
x=200,y=200; // началное положение частицы
int range_min=-5,range_max=5;
void TimeF()
{
xglClear();  // очищаем экран
xglRedraw(); // перерисовываем изображение
}

void Draw()
{

    int r=10;
    int dx=(double)rand() / (RAND_MAX + 1) * (range_max - range_min)+range_min;
int dy=(double)rand() / (RAND_MAX + 1) * (range_max - range_min)+range_min;
x=x+dx;
  y=y+dy;
if(x<r/2) x=x-dx; // условие отражение от стенок
if(y<r/2) y=y-dy;
if(x>x_win-r/2) x=x_win-dx;
if(y>y_win-r/2) y=y_win-dy;
cout<<dx<<' '<<dy<<endl;
glColor3f(0.0f,1.0f,1.0f); // цвет окружности
xglDrawCircle(x, y,r);     // рисуем окружность
}
void main()
{
   srand(time(NULL));
xglInitWindow(0,0,x_win,y_win,"Broun");
xglSetTimerFunc(TimeF,60); // окно обновляется через 60 мс
glClearColor(0.5f, 0.0f, 0.5f, 0.0f); // цвет  заливки окна
glClear(GL_COLOR_BUFFER_BIT); // помещаем в буфер установки цвета в glClearColor
xglMainLoop(Draw); // запускаем цикл рисования
xglKillTimerFunc();
}
Категория: Физикам | Добавил: Bfs (24.04.2011)
Просмотров: 1438 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск
Внимание!
[21.02.2011]
Всем пользовате... (0)
[05.12.2010]
Требуются волон... (0)
[07.09.2010]
Конкурс (1)
Ссылки
  • Официальный блог
  • СДО БФУ им.Канта
  • Язык программирования Python
  • Записки океанолога
  • Cайт А.Радиевского
  • Физики города К.
  • Физика онлайн
  • Физический 2D симулятор
  • Copyright MyCorp © 2025
    Конструктор сайтов - uCoz