Я работаю над проектом, в котором мне нужно вращать шину на основе значения от датчика положения. Датчик обеспечивает значения от 261 (при -90 градусов) до 395 (при +90 градусов). Я использую TransformGroup
, так что почти при значении 327 от датчика шина должна быть прямой и прямой .Точный расчет угла
Когда значение составляет 395, тогда шина будет полностью лежать вдоль оси X, аналогично случаю для значения 261. Я могу переместить шину, но я не могу вычислить точный угол.
Мой способ вычисления подобен тому, что я вычисляю количество значений между значением по умолчанию или нулевым значением (327) для определенного угла (скажем, 3). поэтому я получаю количество значений для этого угла. Затем я делю это число на угол (3 градуса). Поэтому я получаю угол для одного значения.
float tempangle = value from sensor-zero value which is 327;
tempangle = Math.Abs(tempangle);
tempangle /= float.Parse(angle for reference say 3 degree);
tempangle = 1/tempangle;
Здесь я поставил некоторый корпус известного угла под сенсором (который имеет степень степени). Когда я хочу найти некоторый угол для некоторого значения, я просто умножаю этот угол на число значений между этим значением и значением по умолчанию (327). Поэтому я получаю угол поворота тела.
предположит, я получил угол после расчета
angle for one sensor value =1.14286286
Пусть я вычислить угол вычислителем как
1.14286286 *2=2.2857
1.14286286 *3=3.42858
1.14286286 *4=4.57145
1.14286286 *5=5.714314
1.14286286 *6=6.85717
Как вы можете видеть, что угол пропускают несколько десятичных значений. Есть ли способ сотрудничать с ним? благодаря
Использование 'double' вместо' float'. – Clemens
Я имею в виду одно значение 2.2857, а второе значение - 3.42858, если возможно, что я мог бы получить значение, равное 2,5 после 2.2, он не должен перейти на 3 сразу после 2.2. Мой метод не может рассчитывать между значениями. –