This commit is contained in:
2025-07-17 23:10:22 +03:00
parent d8ed10b4be
commit 9061794bf1
3 changed files with 152 additions and 130 deletions

View File

@ -1,10 +1,11 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Numerics;
using System.Reflection;
using System.Text;
using static System.Windows.Forms.VisualStyles.VisualStyleElement.Rebar;
using static System.Windows.Forms.VisualStyles.VisualStyleElement.TaskbarClock;
namespace DroneSimulator
{
@ -27,7 +28,7 @@ namespace DroneSimulator
private const int count = 1000;
private Vector3[] laten = new Vector3[count];
private uint index = 0;
private int index = 0;
public uint timer = 0;
public Vector3 result;
@ -53,18 +54,21 @@ namespace DroneSimulator
value.Y += ((float)rand.Next(-noise, noise)) / 1000;
value.Z += ((float)rand.Next(-noise, noise)) / 1000;
uint clock = (uint)(Lateness * 1000);
uint tick = time - last;
last = time;
while (tick != 0)
uint clock = time - last;
while (true)
{
tick--;
laten[index++] = value;
if (index >= clock) index = 0;
laten[index] = value;
clock--;
if (clock == 0) break;
index++;
if (index >= count) index = 0;
}
last = time;
value = laten[index];
int move = (int)(Lateness * count);
move = index - move;
while (move < 0) move += count;
value = laten[move];
uint freq = 1000 / Freq;
@ -90,7 +94,7 @@ namespace DroneSimulator
private const int count = 1000;
private Vector3[] laten = new Vector3[count];
private uint index = 0;
private int index = 0;
public uint timer = 0;
public Vector3 result;
@ -113,18 +117,21 @@ namespace DroneSimulator
value.Y += ((float)rand.Next(-noise, noise)) / 1000;
value.Z += ((float)rand.Next(-noise, noise)) / 1000;
uint clock = (uint)(Lateness * 1000);
uint tick = time - last;
last = time;
while (tick != 0)
uint clock = time - last;
while (true)
{
tick--;
laten[index++] = value;
if (index >= clock) index = 0;
laten[index] = value;
clock--;
if (clock == 0) break;
index++;
if (index >= count) index = 0;
}
last = time;
value = laten[index];
int move = (int)(Lateness * count);
move = index - move;
while (move < 0) move += count;
value = laten[move];
uint freq = 1000 / Freq;
@ -155,7 +162,7 @@ namespace DroneSimulator
private const int count = 1000;
private Vector3[] laten = new Vector3[count];
private uint index = 0;
private int index = 0;
public uint timer = 0;
public Vector3 result;
@ -169,16 +176,16 @@ namespace DroneSimulator
v.Y += ((float)rand.Next(-noise, noise)) / 1000;
v.Z += ((float)rand.Next(-noise, noise)) / 1000;
uint clock = (uint)(Lateness * 1000);
uint tick = time - last;
last = time;
while (tick != 0)
uint clock = time - last;
while (true)
{
tick--;
laten[index++] = v;
if (index >= clock) index = 0;
laten[index] = v;
clock--;
if (clock == 0) break;
index++;
if (index >= count) index = 0;
}
last = time;
if (!Enable)
{
@ -194,7 +201,10 @@ namespace DroneSimulator
return;
}
v = laten[index];
int move = (int)(Lateness * count);
move = index - move;
while (move < 0) move += count;
v = laten[move];
uint freq = 1000 / Freq;
if (timer + freq <= time)
@ -221,7 +231,7 @@ namespace DroneSimulator
private const int count = 1000;
private float[] laten = new float[count];
private uint index = 0;
private int index = 0;
public uint timer = 0;
public float result;
@ -235,16 +245,16 @@ namespace DroneSimulator
int noise = (int)(Noise * 1000);
v += ((float)rand.Next(-noise, noise)) / 1000;
uint clock = (uint)(Lateness * 1000);
uint tick = time - last;
last = time;
while (tick != 0)
uint clock = time - last;
while (true)
{
tick--;
laten[index++] = v;
if (index >= clock) index = 0;
laten[index] = v;
clock--;
if (clock == 0) break;
index++;
if (index >= count) index = 0;
}
last = time;
if (!Enable)
{
@ -260,7 +270,10 @@ namespace DroneSimulator
return;
}
v = laten[index];
int move = (int)(Lateness * count);
move = index - move;
while (move < 0) move += count;
v = laten[move];
uint freq = 1000 / Freq;
if (timer + freq <= time)
@ -287,7 +300,7 @@ namespace DroneSimulator
private const int count = 1000;
private Vector2[] laten = new Vector2[count];
private uint index = 0;
private int index = 0;
public uint delay = 0;
@ -307,16 +320,16 @@ namespace DroneSimulator
v.Y += ((float)rand.Next(-noise, noise)) / 1000;
}
uint clock = (uint)(Lateness * 1000);
uint tick = time - last;
last = time;
while (tick != 0)
uint clock = time - last;
while (true)
{
tick--;
laten[index++] = v;
if (index >= clock) index = 0;
laten[index] = v;
clock--;
if (clock == 0) break;
index++;
if (index >= count) index = 0;
}
last = time;
if (!Enable)
{
@ -332,9 +345,12 @@ namespace DroneSimulator
return true;
}
result = laten[index];
int move = (int)(Lateness * count);
move = index - move;
while (move < 0) move += count;
result = laten[move];
uint freq = 1000 / Freq;
uint freq = count / Freq;
if (timer + freq <= time)
{
timer = time;
@ -360,7 +376,7 @@ namespace DroneSimulator
private const int count = 1000;
private float[] laten = new float[count];
private uint index = 0;
private int index = 0;
public uint timer = 0;
public float result;
@ -376,16 +392,16 @@ namespace DroneSimulator
v += ((float)rand.Next(-noise, noise)) / 1000;
}
uint clock = (uint)(Lateness * 1000);
uint tick = time - last;
last = time;
while (tick != 0)
uint clock = time - last;
while (true)
{
tick--;
laten[index++] = v;
if (index >= clock) index = 0;
laten[index] = v;
clock--;
if (clock == 0) break;
index++;
if (index >= count) index = 0;
}
last = time;
if (!Enable)
{
@ -401,7 +417,10 @@ namespace DroneSimulator
return;
}
v = laten[index];
int move = (int)(Lateness * count);
move = index - move;
while (move < 0) move += count;
v = laten[move];
uint freq = 1000 / Freq;
if (timer + freq <= time)