Блок управления СЖО-5

Вместо сухих цифр в блоке СДК захоетлось немного наглядности выполняемых функций данным блоком. Решил сделать визуальный мониторинг данного блока.

Для начала делаем набросок того что из себя представлят СЖО

Вся система образно состоит из пяти компонентов, 

1. УМы блоки усилителей которые охлаждаются принудительной проточкой охлаждающей жидкостью

2. НАСОС обеспечивает циркуляцию охл жидкости по системе

3. ТРЕХХОДОВЫЙ клапан - осуществляет переключение контуров МАЛЫЙ-БОЛЬШОЙ

4. ОХЛАДИТЕЛЬ - охлаждает нагретую УМами охл жидкость

 

Далее делаю набросок-шаблон:

незаштрихованная область это охл жидкость, её мы будем анимировать, что бы иметь визуальное представление того, какой процесс и где происходит.

 

В PhotoShop`е быстро набрасал статичный шаблон:

По прозрачной области будет визуально циркулировать вода. Саму воду будем эмитировать движением каких ни будь частичек по заранее прорисованной траектории:

Это будет у нас верхняя часть движения охл жидкости.

 

Средняя траектория движения охл жидкости.

 

Создаём пока частичку воды obj_blog:

/// @description CREATE
//Site:   MidaDev.ru
//Author: Dimusikus
//EMail:  Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.
//
x_old = x;
y_old = y;
speedik = 100;
color=c_white;
color1=c_white; //цвет первой трети пути
color2=c_white; //цвет второй трети пути
color3=c_white; //цвет третей трети пути
//запуск движения по траектории
function initial_fluid(_path)
{
	path_start(_path, speedik/50, path_action_restart, false);
	path_position = random(1);
}

/// @description STEP
//Site:   MidaDev.ru
//Author: Dimusikus
//EMail:  Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.
//изменение цвета частичек в зависимости от пройденного пути
if path_position<(1/3) then color = color1;
else if path_position<((1/3)*2) then color = color2;
else color = color3;


/// @description DRAW
//Site:   MidaDev.ru
//Author: Dimusikus
//EMail:  Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.
//отрисовка частицы
draw_circle_color(x,y,2,color,color,false);

 

Дальше создаём объект аггрегатор этих частиц obj_blob_aggregator: 

/// @description CREATE
//Site:   MidaDev.ru
//Author: Dimusikus
//EMail:  Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.
//

//x_old = x;y_old = y;path_start(Path2, 4, path_action_restart, false);
fluid_top=[];
fluid_middle=[];
fluid_bottom=[];
randomize();

maxh=18;

//******************************************************************************
xoffset = 85;	//смещение водопровода
yoffset = 320 + 70; //320 это высота path  70 середина водопровода на картинке

for (var i = 0; i < 150; i += 1)
{
	fluid_top[i] = instance_create_depth(xoffset + x + random_range(-maxh,maxh),yoffset + y+ random_range(-maxh,maxh),depth-1,obj_blob);	
	fluid_top[i].color1=c_blue;
	fluid_top[i].color2=c_yellow;
	fluid_top[i].color3=c_red;
	fluid_top[i].speedik=100;
	
	fluid_top[i].initial_fluid(pth_top);
}
instance_create_depth(xoffset + x - maxh,yoffset + y -maxh,depth-1,obj_blob_draw_path).initial_path(pth_top);
instance_create_depth(xoffset + x + maxh,yoffset + y -maxh,depth-1,obj_blob_draw_path).initial_path(pth_top);
instance_create_depth(xoffset + x - maxh,yoffset + y +maxh,depth-1,obj_blob_draw_path).initial_path(pth_top);
instance_create_depth(xoffset + x + maxh,yoffset + y +maxh,depth-1,obj_blob_draw_path).initial_path(pth_top);


//******************************************************************************
xoffset = 695;
yoffset = 275+30;
for (var i = 0; i < 120; i += 1)
{
	fluid_middle[i] = instance_create_depth(xoffset + x + random_range(-maxh,maxh),yoffset + y+ random_range(-maxh,maxh),depth-1,obj_blob);	
	fluid_middle[i].color3=c_blue;
	fluid_middle[i].color2=c_yellow;
	fluid_middle[i].color1=c_red;
	fluid_middle[i].speedik=30;
	
	fluid_middle[i].initial_fluid(pth_middle);
}
instance_create_depth(xoffset + x - maxh,yoffset + y -maxh,depth-1,obj_blob_draw_path).initial_path(pth_middle);
instance_create_depth(xoffset + x + maxh,yoffset + y -maxh,depth-1,obj_blob_draw_path).initial_path(pth_middle);
instance_create_depth(xoffset + x - maxh,yoffset + y +maxh,depth-1,obj_blob_draw_path).initial_path(pth_middle);
instance_create_depth(xoffset + x + maxh,yoffset + y +maxh,depth-1,obj_blob_draw_path).initial_path(pth_middle);
//******************************************************************************
yoffset = 900;
for (var i = 0; i < 50; i += 1)
{
	fluid_bottom[i] = instance_create_depth(xoffset + x + random_range(-maxh,maxh),yoffset + y+ random_range(-maxh,maxh),depth-1,obj_blob);	
	fluid_bottom[i].color=c_red;
	fluid_bottom[i].color3=c_blue;
	fluid_bottom[i].color2=c_yellow;
	fluid_bottom[i].color1=c_red;
	fluid_bottom[i].speedik=70;
	
	fluid_bottom[i].initial_fluid(pth_bottom);
}

 

В итоге получаем картину следующего вида:

 

 

 

продолжение следует..........

 

 

 

© 2021 MidaDev.