Paramu1973 Ответов: 1

Как рассчитать кумулятивную скорость для движений мыши по часам?


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

Кроме того, как только пользователь перемещает мышь вместе с кругом в противочасовом направлении, тогда нет необходимости считать. Расчет производится только для часовых направлений.

В качестве части я закончил свой круг в центре экрана..Поэтому любое руководство или правильные указания будут полезны.
Спасибо

Мои коды : - отображение круга в центре моего экрана

protected void Page_Load(object sender, EventArgs e)
  {
        SolidBrush MyBrush = new SolidBrush(System.Drawing.Color.Brown);
        Bitmap Bmp1 = new Bitmap(150, 60);
        Graphics G = Graphics.FromImage(Bmp1);
        G.Clear(Color.White);
        Pen MyDrawingPen = new Pen(Color.FromArgb(75, Color.Chocolate), 15);
        Rectangle MyRect = new Rectangle(25, 9, 45, 40);
        G.DrawEllipse(MyDrawingPen, MyRect);
        G.FillEllipse(MyBrush, MyRect);
        string path = Server.MapPath("/DrawEllipse_1.jpg");
        Bmp1.Save(path, ImageFormat.Jpeg);
        Image1.ImageUrl = "/DrawEllipse_1.jpg";
        G.Dispose();
        Bmp1.Dispose();
}

спасибо снова

Что я уже пробовал:

Пытаясь вычислить кумулятивную скорость мыши, скорость вращения вместе с кругом, но только для тактового вращения.

1 Ответов

Рейтинг:
1

S Houghtelin

Вместо того, чтобы давать вам код, я объясню концепцию. Написание кода - это больше, чем просто копирование кода и вставка его в ваш проект. Понимание концепций и написание процесса того, что вы пытаетесь сделать, неизмеримо помогает. (Это называется спецификацией) Затем вы можете написать код, соответствующий дизайну.

См. таблицу ниже, начиная с точки 1. Мышь будет перемещаться по оставшимся числам на сетке по часовой стрелке. Вы должны иметь базовое представление о тригонометрии, чтобы помочь определить, когда вы рисуете круг.

--------->-----1------>--------
|    |    |    |    |    |    |
|    |    |    |    |    |    |
-----8---------|---------2-----
|    | Q4 |    |    | Q1 |    |
^    |    |    |    |    |    V
---------------|---------------
|    |    |    |    |    |    |
|    |    |    |    |    |    |
7______________|______________3
|    |    |    |    |    |    |
|    |    |    |    |    |    |
---------------|---------------
^    | Q3 |    |    | Q2 |    V
|    |    |    |    |    |    |
-----6---------|---------4-----
|    |    |    |    |    |    |
|    |    |    |    |    |    |
---------<-----5-----<---------
В каком направлении мы идем?
Ниже приведена таблица состояний для определения направления по часовой стрелке, возьмите разности текущих значений мыши x и y и предыдущих значений x и Y. Разница Q1 должна привести к положительному значению X и отрицательному значению Y, и так далее. Ведите историю направления, чтобы знать, продолжает ли мышь двигаться по часовой стрелке.
Quadrant   CW Dir Rslt
-----------------------
   Q1         +X -Y
   Q2         -X -Y
   Q3         -X +Y
   Q4         +X +Y

Как быстро мы едем?
Для вычисления скорости для каждого изменения координат мыши(X,Y) запишите время с момента последнего изменения координат. Подсказка: используйте счетчик таймера в качестве секундомера. Медленный круг займет больше времени...

Я предоставлю вам использовать google, чтобы узнать, как получить координаты мыши (событие mousemove), а также настроить и прочитать таймер для измерения времени между событиями.

Удачи!