|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
09.12.2014, 14:17 | #11 |
Старожил
Регистрация: 19.06.2013
Сообщений: 2,463
|
Идея замечательная! но не получается передвинуть центр вращения в другое место. Исходник и .exe положил в http://rghost.ru/59505952 .
Репутация: полный "0"
|
10.12.2014, 18:03 | #12 |
Форумчанин
Регистрация: 15.01.2010
Сообщений: 948
|
Попробуйте кусочно-линейно интерполировать траекторию движения мыши и по ходу вычислять угол между последующим отрезком (вектором) и предыдущим (конец предыдущего есть начало последующего). При одном знаке этого угла - вращение против часовой стрелки. При другом - по. Длиной отрезков интерполяционной ломаной можно поиграться - чем они длиннее, тем менее чувствителен алгоритм к дрожанию руки.
Hahn.zip Движения отслеживаются при нажатой ЛКМ. Длина отрезка = 16 пикселей. Занятно, что когда bmp-файл делаешь фоном окна через RC-файл, старый Avast! делает стойку на exe-шник |
12.12.2014, 10:06 | #13 | |
Старожил
Регистрация: 19.06.2013
Сообщений: 2,463
|
Цитата:
В "Hahn.zip" Вы продемонстрировали ваши возможности и изменили центр вращения штурвала задвижки, но в .exe не видно, как это делается. Покажете?
Репутация: полный "0"
|
|
12.12.2014, 17:00 | #14 | ||
Форумчанин
Регистрация: 15.01.2010
Сообщений: 948
|
В моей, конечно Вредоносно ли? Шут его знает! У меня больше никто не ругается.
Цитата:
Цитата:
Декларации. Код:
Код:
Код:
Последний раз редактировалось Vago; 12.12.2014 в 17:09. |
||
13.12.2014, 14:50 | #15 | |
Старожил
Регистрация: 19.06.2013
Сообщений: 2,463
|
Цитата:
var ax,ay,bx,by,an,dot,det: double; begin dot = a.x * b.x + a.y * b.y ; // скалярное произведение det = a.x * b.y - a.y * b.x ; // определитель an:=-arctan(det/dot); end; Это очень интересно, но не подходит для случая прямолинейного движения снизу-вверх и обратно.
Репутация: полный "0"
|
|
13.12.2014, 22:56 | #16 |
Форумчанин
Регистрация: 15.01.2010
Сообщений: 948
|
Я так понимаю, это программа для какого-то биометрического тестирования? Тогда пусть для каждого нового фона "инструктор тренажёра" выполняет калибровку. Двух контрольных точек, наверное, достаточно. Пусть помечает мышью, к примеру, крайнее вертикальное положение рукоятки рычага и крайнее горизонтальное (крайнюю верхнюю точку обода штурвала и крайнюю боковую). Тогда построить проекцию траектории вращения - дело несложной математики. А дальше - посчитать меру близости этой проекции и реальной траектории.
|
14.12.2014, 23:37 | #17 |
Старожил
Регистрация: 19.06.2013
Сообщений: 2,463
|
Это раздел "Помощь студентам". Ранее я уже писал, что по мотивам этой инструкции уже снято и озвучено видео. На моей работе, даже не присели глянуть одним глазом.
В учебном комбинате попросили экземпляр в подарок (нет лицензии, котёл редкий и так далее...) Так, что это только учебный проект по моему плану. Обратите внимание, как обо мне отзывается min@y™.
Репутация: полный "0"
|
15.12.2014, 11:03 | #18 | ||
Форумчанин
Регистрация: 15.01.2010
Сообщений: 948
|
Цитата:
|
||
16.12.2014, 19:44 | #19 |
Старожил
Регистрация: 19.06.2013
Сообщений: 2,463
|
Не изучал я скалярного произведения векторов. (Это дает знак угла поворота?)
Для Delphi так будет правильно? : var ax,ay,bx,by,an,dot,det: double; begin dot = a.x * b.x + a.y * b.y ; // скалярное произведение det = a.x * b.y - a.y * b.x ; // определитель an:=-arctan(det/dot); end; // ??????? Вариант 1 понятней: Код:
Пытаюсь сместить центр вращения от центра на координаты выдаваемые: Код:
Репутация: полный "0"
Последний раз редактировалось zvygin1964; 16.12.2014 в 19:46. |
16.12.2014, 23:27 | #20 |
Форумчанин
Регистрация: 15.01.2010
Сообщений: 948
|
Я не зря перед этим написал про уточнение ТЗ. Сделайте это! Даже в разделе "помощь студентам"! Как предполагается эксплуатировать этот "программный комплекс"? Допустимо ли, что перед началом тестирования программу с конкретной фоновой фотографией настроит человек (назовём его "инструктором", "оператором" или ещё как-то)? Вот есть фон из поста #11, и есть фон из поста #15. В первом случае ось вращения практически перпендикулярна плоскости картинки, во втором - практически лежит в этой плоскости. В первом случае надо отлавливать круговое движение, во втором - прямолинейное. В общем случае - дугу эллипса (или её часть) с разным соотношением полуосей. Вопрос: Допустимо ли, что перед началом тестирования на конкретной картинке некий "оператор" каким-то образом (тремя щелчками мыши, к примеру) задаст три контрольных точки, по которым можно определить проекцию траектории вращения на плоскость экрана? Если да, то дальнейшая математика относительно несложна (хотя тут ещё опять надо будет посмотреть на ТЗ, на критерий оценки контроля моторики испытуемого). Если нет, если на фотографии программно нужно распознать вентиль или рукоять, а потом ещё и определить, под каким углом они сфотографированы, то это программа уже из области AI!! Но даже в случае "да" - это задача сперва математическая, а потом уже программистская, и, чтобы решить её элегантно, лучше всё-таки разобраться в основах геометрических преобразований в машинной графике и линейной алгебры.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Платформа автоматизации "бизнеса" или конфигурирование против кодинга | serzh-kz | Общие вопросы по программированию, компьютерный форум | 0 | 06.06.2013 05:35 |
Диагностика уровня закритичности конвективного течения на основе численного решения задачи Релея -Бенара(Делфи) | Эльвира91 | Помощь студентам | 3 | 15.03.2013 17:27 |
ListBox или ComboBox, выбор элмента, в Delphi7 | Николай ПН | Помощь студентам | 11 | 17.11.2010 19:55 |
Жильцы против Управляющих компаний или когда в нашей стране восторжествует справедливость? | vasek123 | Свободное общение | 18 | 05.11.2010 06:37 |
Arcgis проблема с направлением течения реки | treder | Помощь студентам | 0 | 06.04.2010 23:07 |