|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
07.11.2012, 10:13 | #51 | |||
Пользователь
Регистрация: 16.05.2011
Сообщений: 45
|
1.
Цитата:
2. Цитата:
3. Цитата:
Код:
Правда, если дописывать else Edit1.clear то не очищается. Последний раз редактировалось Stilet; 07.11.2012 в 20:13. |
|||
07.11.2012, 13:51 | #52 |
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
да, типо его
Да и плюньте на Clear, пишите просто: Edit1.text:='';
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
|
07.11.2012, 19:54 | #53 |
Пользователь
Регистрация: 16.05.2011
Сообщений: 45
|
А меняю положение курсора, но Edit1 не чистится. (
|
07.11.2012, 20:17 | #54 |
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
Очистку эдита надо поместить в Form1MouseMove
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
|
08.11.2012, 07:50 | #55 | |
Пользователь
Регистрация: 16.05.2011
Сообщений: 45
|
Мне вот теперь интересно, как создать условие:
Координата X = Screen.Widht div 2, а Y = изменяется по 1 пикселю(или не пикселю?) вниз до центра экрана. Если мышка будет на этой линии, то 90градусов. Аналогично прописать все остальные градусы. Или я выбрал не лёгкий путь? Цитата:
Последний раз редактировалось Jeraldino74; 08.11.2012 в 07:53. |
|
08.11.2012, 09:18 | #56 | ||
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
Цитата:
По определению скалярное произведение равно произведению длин векторов на косинус угла между ними (скалярное произведение для двух векторов с координатами (x1; y1) и (x2; y2) вычисляется по формуле: x1x2 + y1y2). Длина вектора, в свою очередь, определяется по Пифагору: l=SQRT(x*x+y*y). Таким образом получаем равенство: SQRT(x1*x1+y1*y1)*SQRT(x2*x2+y2*y2) *cos(alpha)=x1*x2+y1*y2; Отсюда не проблема вывести формулу косинуса угла, а взяв от него Арккосинус, получаем сам искомый угол (обратите внимание: в радианах): alpha=arccos((x1*x2+y1*y2)/(SQRT(x1*x1+y1*y1)*SQRT(x2*x2+y2*y2 )) Далее переводим из радиан в градусы: alphagrad=alpha*180/Pi - вот он, наш искомый уголок Два вектора с координатами у Вас есть: x0 И y0 у обоих будет центр экрана, x1 И y1 - первый вектор (из центра до начальной позиции курсора), x2 и y2 - второй вектор (от центра до конечной позиции курсора). Цитата:
Сорри, немного неточные формулы дал: ведь на форме x0 и y0 будут смещены и не равны 0. Вот правильные формулы: Код:
Надо накликать на форме три точки, угол сам построится и рассчитается.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Последний раз редактировалось Stilet; 09.11.2012 в 23:12. |
||
09.11.2012, 19:26 | #57 |
Пользователь
Регистрация: 16.05.2011
Сообщений: 45
|
Вообщем я запутался. Но получилось, что-то вроде этого. Хотя бы что-то.
Предложите мне, что дополнить, "правильно сделать". Пока писал сообщение подумал, у меня задача стоит так, чтобы угол исчислять до 150 градусов. Можно вектор (х0,у0; x1,y1) сделать низ экрана. И тогда не получится той ерунды со расчётом угла после 180градусов. |
09.11.2012, 20:01 | #58 |
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
У Вас в едите "Скорость мыши" выводится угол
И нет модуля unit1 в папке, а я хотел поглядеть, как там угол рассчитывается. так как чей-то даже при небольшом смещении выдается около 140 градусов - несколько странно, не находите?
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
|
09.11.2012, 20:29 | #59 |
Пользователь
Регистрация: 16.05.2011
Сообщений: 45
|
Перезалил архив. Новый архив. Посмотрите, Unit Добавил, всё впорядке.
теперь вроде работает. А вы случаем, Sciv не сталкивались с измерением скорости движения мыши по экрану? |
09.11.2012, 20:51 | #60 |
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
Не сталкивался. Но зато сталкивался с программой "Мышиный спидометр" (она, по-моему, еще со времен 98 винды существует
Да я, до Вас, и с углом поворота мыши не сталкивался Разъясните-ка мне лучше вот этот код: Код:
И еще обратите внимание: не стоит привязывать рассчет угла к кнопке на форме, так как тогда курсор будет (всегда, заметьте!) в районе этой кнопки. Лучше уж тогда к правой/средней кнопе самой мыши это привязать. P.S. Чтобы замерить скорость мышки, нужно вводить еще компонент Timer и определять, сколько пикселей прошла мышка в секунду - то есть на событие Timer1OnTimer навешать измерение длины вектора между начальной и конечной координатой мыши ((x1;y1) и (x2;y2)) по вышеуказанной формуле - вот тебе и вся скорость по моему разумению.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Последний раз редактировалось Sciv; 09.11.2012 в 21:31. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
датчик случайных чисел | Наталия 555 | Общие вопросы C/C++ | 3 | 31.03.2011 13:58 |
Датчик случайных чисел | Ksy | JavaScript, Ajax | 0 | 07.02.2011 23:10 |
Мышка как датчик вращения | loader-ua | Фриланс | 7 | 19.11.2009 00:01 |
Мышка как датчик вращения | loader-ua | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 2 | 15.11.2009 17:22 |