Я пытаюсь создать анимацию, которая поможет мне визуализировать, как разные области мозга сигнализируют друг другу. В качестве примера, область мозга 1 (на данный момент визуализируется как текстовое поле) мигает, и это запускает полосу света в область мозга 2, которая мигает и запускает второй сигнал et c et c ..
С этой целью я попытался написать небольшой световой код c в MS Visual Studio C#, аналогичный тому, что многие другие делали до меня:
private void timer1_Tick(object sender, EventArgs e)
{
if (ovalshape1.visible == true)
{
ovalshape1.visible = false;
ovalshape2.visible = true;
}
else if (ovalshape2.visible == true)
{
ovalshape1.visible = true;
ovalshape2.visible = false;
}
}
Этот код также хорошо работает если я увеличу, например, до 5 «огней», если одновременно включен только один «свет». Чтобы создать эффект трейлинга, я бы хотел включить несколько лампочек одновременно, и здесь я столкнулся с проблемами, так как это, кажется, запутало мою настройку ПЧ ...
Тропа Посмотрите что-то такое:
Задние фонари
Я попытался обойти это путем создания логического массива для управления включением и выключением освещения, как я и думал, что значительно сократить объем кода, который мне нужно было бы написать, но мои возможности кодирования не до этого.
Я также пытался реализовать al oop, думая, что таким образом я мог бы просто определить, какие источники света включаются / выключаются, когда i = 0, i = 1 и т. Д., Но разве это даже сделано в таймере?
Я пытался прочитать о том, как подойти к этой проблеме, но не смог найти ничего, что могло бы иметь прямое отношение к моей ситуации. Я надеюсь, что вы можете помочь мне.
В конечном итоге я хотел бы показать передачу сигналов между 7 областями мозга.
Что-то вроде
Region1 -> R2 -> R3 -> R4 -> R5 <- R6 </p>
Region7 получает ввод от R5.
Я предполагаю передачу сигналов между отдельными регионами в виде набора точек, которые включаются / выключаются в виде последовательного шаблона, аналогичного тому, что достигается с помощью светового кода traffi c.
Чтобы усложнить ситуацию, я хотел бы запустите две анимации параллельно, изображая «нормальную» передачу сигналов в мозге, и я предполагаю (является частью) патологическую передачу сигналов при шизофрении.
До сих пор мне удалось создать два параллельных ряда по 5 задних фонарей , Каждый ряд контролируется таймером, который позволяет мне регулировать скорость для каждого ряда.
Я могу масштабировать это так, чтобы каждый таймер управлял несколькими концевыми огнями, используя код ниже:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
int counter = 0;
string shapeColorON = "White";
string shapeColorOFF = "Black";
private void buttonStart_Click(object sender, EventArgs e)
{
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
counter++;
if (counter == 1)
{
ovalShape1.FillColor = Color.FromName(shapeColorON);
ovalShape2.FillColor = Color.FromName(shapeColorOFF);
ovalShape3.FillColor = Color.FromName(shapeColorOFF);
ovalShape4.FillColor = Color.FromName(shapeColorOFF);
ovalShape5.FillColor = Color.FromName(shapeColorOFF);
ovalShape6.FillColor = Color.FromName(shapeColorON);
ovalShape7.FillColor = Color.FromName(shapeColorOFF);
ovalShape8.FillColor = Color.FromName(shapeColorOFF);
ovalShape9.FillColor = Color.FromName(shapeColorOFF);
ovalShape10.FillColor = Color.FromName(shapeColorOFF);
ovalShape11.FillColor = Color.FromName(shapeColorON);
ovalShape12.FillColor = Color.FromName(shapeColorOFF);
ovalShape13.FillColor = Color.FromName(shapeColorOFF);
ovalShape14.FillColor = Color.FromName(shapeColorOFF);
ovalShape15.FillColor = Color.FromName(shapeColorOFF);
ovalShape16.FillColor = Color.FromName(shapeColorON);
ovalShape17.FillColor = Color.FromName(shapeColorOFF);
ovalShape18.FillColor = Color.FromName(shapeColorOFF);
ovalShape19.FillColor = Color.FromName(shapeColorOFF);
ovalShape20.FillColor = Color.FromName(shapeColorOFF);
ovalShape21.FillColor = Color.FromName(shapeColorON);
ovalShape22.FillColor = Color.FromName(shapeColorOFF);
ovalShape23.FillColor = Color.FromName(shapeColorOFF);
ovalShape24.FillColor = Color.FromName(shapeColorOFF);
ovalShape25.FillColor = Color.FromName(shapeColorOFF);
}
else if (counter == 2)
{
ovalShape1.FillColor = Color.FromName(shapeColorON);
ovalShape2.FillColor = Color.FromName(shapeColorON);
ovalShape3.FillColor = Color.FromName(shapeColorOFF);
ovalShape4.FillColor = Color.FromName(shapeColorOFF);
ovalShape5.FillColor = Color.FromName(shapeColorOFF);
ovalShape6.FillColor = Color.FromName(shapeColorON);
ovalShape7.FillColor = Color.FromName(shapeColorON);
ovalShape8.FillColor = Color.FromName(shapeColorOFF);
ovalShape9.FillColor = Color.FromName(shapeColorOFF);
ovalShape10.FillColor = Color.FromName(shapeColorOFF);
ovalShape11.FillColor = Color.FromName(shapeColorON);
ovalShape12.FillColor = Color.FromName(shapeColorON);
ovalShape13.FillColor = Color.FromName(shapeColorOFF);
ovalShape14.FillColor = Color.FromName(shapeColorOFF);
ovalShape15.FillColor = Color.FromName(shapeColorOFF);
ovalShape16.FillColor = Color.FromName(shapeColorON);
ovalShape17.FillColor = Color.FromName(shapeColorON);
ovalShape18.FillColor = Color.FromName(shapeColorOFF);
ovalShape19.FillColor = Color.FromName(shapeColorOFF);
ovalShape20.FillColor = Color.FromName(shapeColorOFF);
ovalShape21.FillColor = Color.FromName(shapeColorON);
ovalShape22.FillColor = Color.FromName(shapeColorON);
ovalShape23.FillColor = Color.FromName(shapeColorOFF);
ovalShape24.FillColor = Color.FromName(shapeColorOFF);
ovalShape25.FillColor = Color.FromName(shapeColorOFF);
}
else if (counter == 3)
{
ovalShape1.FillColor = Color.FromName(shapeColorOFF);
ovalShape2.FillColor = Color.FromName(shapeColorON);
ovalShape3.FillColor = Color.FromName(shapeColorON);
ovalShape4.FillColor = Color.FromName(shapeColorOFF);
ovalShape5.FillColor = Color.FromName(shapeColorOFF);
ovalShape6.FillColor = Color.FromName(shapeColorOFF);
ovalShape7.FillColor = Color.FromName(shapeColorON);
ovalShape8.FillColor = Color.FromName(shapeColorON);
ovalShape9.FillColor = Color.FromName(shapeColorOFF);
ovalShape10.FillColor = Color.FromName(shapeColorOFF);
ovalShape11.FillColor = Color.FromName(shapeColorOFF);
ovalShape12.FillColor = Color.FromName(shapeColorON);
ovalShape13.FillColor = Color.FromName(shapeColorON);
ovalShape14.FillColor = Color.FromName(shapeColorOFF);
ovalShape15.FillColor = Color.FromName(shapeColorOFF);
ovalShape16.FillColor = Color.FromName(shapeColorOFF);
ovalShape17.FillColor = Color.FromName(shapeColorON);
ovalShape18.FillColor = Color.FromName(shapeColorON);
ovalShape19.FillColor = Color.FromName(shapeColorOFF);
ovalShape20.FillColor = Color.FromName(shapeColorOFF);
ovalShape21.FillColor = Color.FromName(shapeColorOFF);
ovalShape22.FillColor = Color.FromName(shapeColorON);
ovalShape23.FillColor = Color.FromName(shapeColorON);
ovalShape24.FillColor = Color.FromName(shapeColorOFF);
ovalShape25.FillColor = Color.FromName(shapeColorOFF);
}
else if (counter == 4)
{
ovalShape1.FillColor = Color.FromName(shapeColorOFF);
ovalShape2.FillColor = Color.FromName(shapeColorOFF);
ovalShape3.FillColor = Color.FromName(shapeColorON);
ovalShape4.FillColor = Color.FromName(shapeColorON);
ovalShape5.FillColor = Color.FromName(shapeColorOFF);
ovalShape6.FillColor = Color.FromName(shapeColorOFF);
ovalShape7.FillColor = Color.FromName(shapeColorOFF);
ovalShape8.FillColor = Color.FromName(shapeColorOFF);
ovalShape9.FillColor = Color.FromName(shapeColorOFF);
ovalShape10.FillColor = Color.FromName(shapeColorON);
ovalShape11.FillColor = Color.FromName(shapeColorON);
ovalShape12.FillColor = Color.FromName(shapeColorOFF);
ovalShape13.FillColor = Color.FromName(shapeColorOFF);
ovalShape14.FillColor = Color.FromName(shapeColorOFF);
ovalShape15.FillColor = Color.FromName(shapeColorOFF);
ovalShape16.FillColor = Color.FromName(shapeColorOFF);
ovalShape17.FillColor = Color.FromName(shapeColorON);
ovalShape18.FillColor = Color.FromName(shapeColorON);
ovalShape19.FillColor = Color.FromName(shapeColorOFF);
ovalShape20.FillColor = Color.FromName(shapeColorOFF);
ovalShape21.FillColor = Color.FromName(shapeColorOFF);
ovalShape22.FillColor = Color.FromName(shapeColorOFF);
ovalShape23.FillColor = Color.FromName(shapeColorON);
ovalShape24.FillColor = Color.FromName(shapeColorON);
ovalShape25.FillColor = Color.FromName(shapeColorOFF);
}
else if (counter == 5)
{
ovalShape1.FillColor = Color.FromName(shapeColorOFF);
ovalShape2.FillColor = Color.FromName(shapeColorOFF);
ovalShape3.FillColor = Color.FromName(shapeColorOFF);
ovalShape4.FillColor = Color.FromName(shapeColorON);
ovalShape5.FillColor = Color.FromName(shapeColorON);
ovalShape6.FillColor = Color.FromName(shapeColorOFF);
ovalShape7.FillColor = Color.FromName(shapeColorOFF);
ovalShape8.FillColor = Color.FromName(shapeColorOFF);
ovalShape9.FillColor = Color.FromName(shapeColorON);
ovalShape10.FillColor = Color.FromName(shapeColorON);
ovalShape11.FillColor = Color.FromName(shapeColorOFF);
ovalShape12.FillColor = Color.FromName(shapeColorOFF);
ovalShape13.FillColor = Color.FromName(shapeColorOFF);
ovalShape14.FillColor = Color.FromName(shapeColorON);
ovalShape15.FillColor = Color.FromName(shapeColorON);
ovalShape16.FillColor = Color.FromName(shapeColorOFF);
ovalShape17.FillColor = Color.FromName(shapeColorOFF);
ovalShape18.FillColor = Color.FromName(shapeColorOFF);
ovalShape19.FillColor = Color.FromName(shapeColorON);
ovalShape20.FillColor = Color.FromName(shapeColorON);
ovalShape21.FillColor = Color.FromName(shapeColorOFF);
ovalShape22.FillColor = Color.FromName(shapeColorOFF);
ovalShape23.FillColor = Color.FromName(shapeColorOFF);
ovalShape24.FillColor = Color.FromName(shapeColorON);
ovalShape25.FillColor = Color.FromName(shapeColorON);
}
else if (counter == 6)
{
ovalShape1.FillColor = Color.FromName(shapeColorOFF);
ovalShape2.FillColor = Color.FromName(shapeColorOFF);
ovalShape3.FillColor = Color.FromName(shapeColorOFF);
ovalShape4.FillColor = Color.FromName(shapeColorOFF);
ovalShape5.FillColor = Color.FromName(shapeColorON);
ovalShape6.FillColor = Color.FromName(shapeColorOFF);
ovalShape7.FillColor = Color.FromName(shapeColorOFF);
ovalShape8.FillColor = Color.FromName(shapeColorOFF);
ovalShape9.FillColor = Color.FromName(shapeColorOFF);
ovalShape10.FillColor = Color.FromName(shapeColorON);
ovalShape11.FillColor = Color.FromName(shapeColorOFF);
ovalShape12.FillColor = Color.FromName(shapeColorOFF);
ovalShape13.FillColor = Color.FromName(shapeColorOFF);
ovalShape14.FillColor = Color.FromName(shapeColorOFF);
ovalShape15.FillColor = Color.FromName(shapeColorON);
ovalShape16.FillColor = Color.FromName(shapeColorOFF);
ovalShape17.FillColor = Color.FromName(shapeColorOFF);
ovalShape18.FillColor = Color.FromName(shapeColorOFF);
ovalShape19.FillColor = Color.FromName(shapeColorOFF);
ovalShape20.FillColor = Color.FromName(shapeColorON);
ovalShape21.FillColor = Color.FromName(shapeColorOFF);
ovalShape22.FillColor = Color.FromName(shapeColorOFF);
ovalShape23.FillColor = Color.FromName(shapeColorOFF);
ovalShape24.FillColor = Color.FromName(shapeColorOFF);
ovalShape25.FillColor = Color.FromName(shapeColorON);
}
else if (counter == 7)
{
ovalShape1.FillColor = Color.FromName(shapeColorOFF);
ovalShape2.FillColor = Color.FromName(shapeColorOFF);
ovalShape3.FillColor = Color.FromName(shapeColorOFF);
ovalShape4.FillColor = Color.FromName(shapeColorOFF);
ovalShape5.FillColor = Color.FromName(shapeColorOFF);
ovalShape6.FillColor = Color.FromName(shapeColorOFF);
ovalShape7.FillColor = Color.FromName(shapeColorOFF);
ovalShape8.FillColor = Color.FromName(shapeColorOFF);
ovalShape9.FillColor = Color.FromName(shapeColorOFF);
ovalShape10.FillColor = Color.FromName(shapeColorOFF);
ovalShape11.FillColor = Color.FromName(shapeColorOFF);
ovalShape12.FillColor = Color.FromName(shapeColorOFF);
ovalShape13.FillColor = Color.FromName(shapeColorOFF);
ovalShape14.FillColor = Color.FromName(shapeColorOFF);
ovalShape15.FillColor = Color.FromName(shapeColorOFF);
ovalShape16.FillColor = Color.FromName(shapeColorOFF);
ovalShape17.FillColor = Color.FromName(shapeColorOFF);
ovalShape18.FillColor = Color.FromName(shapeColorOFF);
ovalShape19.FillColor = Color.FromName(shapeColorOFF);
ovalShape20.FillColor = Color.FromName(shapeColorOFF);
ovalShape21.FillColor = Color.FromName(shapeColorOFF);
ovalShape22.FillColor = Color.FromName(shapeColorOFF);
ovalShape23.FillColor = Color.FromName(shapeColorOFF);
ovalShape24.FillColor = Color.FromName(shapeColorOFF);
ovalShape25.FillColor = Color.FromName(shapeColorOFF);
}
if (counter == 7)
{
counter = 0;
Однако я не думаю, что такой подход позволит мне регулировать скорость каждого ряда из 5 источников света по отдельности ... и использование таймеров 2х7 тоже кажется очень плохой идеей.