|
Техник
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
|
|
Нарисовать стрелку как у аналоговых приборов27.06.2014, 14:48. Показов 7557. Ответов 77
Метки нет (Все метки)
Доброго времени суток. Подскажите, как можно нарисовать стрелку как у аналоговых приборов ? Например:
0
|
|
| 27.06.2014, 14:48 | |
|
Ответы с готовыми решениями:
77
Как нарисовать стрелку на Image |
|
2511 / 1132 / 582
Регистрация: 07.06.2014
Сообщений: 3,286
|
||
| 02.07.2014, 15:01 | ||
Если вдруг возникнут вопросы - задавайте, будем вместе пытаться их разрешить.
1
|
||
|
Техник
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
|
|
| 02.07.2014, 15:02 [ТС] | |
|
Sergio Leone, Обязательно) Спасибо!)
1
|
|
|
Модератор
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,977
|
||||||||||||||||
| 02.07.2014, 18:28 | ||||||||||||||||
|
Шкала у нас - величина постоянная, поэтому имеет смысл нарисовать ее один раз и хранить в отдельном Битмапе:
Еще где-то надо хранить положение стрелки:
Эти же границы назначаются TrackBar'у (0..120). Чтобы при изменении положения стрелки картинка сама перерисовывалась добавлена процедура SetSwivel. Само рисование сводится к загрузке в Имагу картинки шкалы и отрисовки нового положения стрелки. Код: Кликните здесь для просмотра всего текста
2
|
||||||||||||||||
|
Техник
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
|
|
| 03.07.2014, 08:06 [ТС] | |
|
FIL, Шкала может изменяться по условию задачи, но думаю это уже не трудно будет сделать ! Спасибо !!)
0
|
|
|
Техник
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
|
|
| 14.11.2014, 12:05 [ТС] | |
|
FIL, Доброго времени суток! Хотел бы снова поднять данную тему. У меня возникли некоторые проблемы со шкалой. В случае когда тип шкалы от -1..0..1 , все ясно. А как быть, если тип будет от 0..1 (т.е. от 0 до 10, 100, 500) и на оборот от -1..0 (-10, -100, - 500 до 0).
0
|
|
|
Модератор
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,977
|
|
| 14.11.2014, 12:18 | |
|
0
|
|
|
Техник
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
|
|
| 14.11.2014, 12:57 [ТС] | |
|
FIL, проблема в том, что тип шкалы может изменяться в процессе работы программы, и мне не совсем ясно, какие параметры отвечают за 0 точку.
0
|
|
|
Техник
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
|
|
| 14.11.2014, 14:09 [ТС] | |
|
У меня немного другой пример, он более подходит под мою задачу
AnalogDevice.rar Если у вас есть возможность, посмотрите пожалуйста! Мне кажется там делов на 5 минут, но ни как сообразить не могу где копать ...
0
|
|
|
Модератор
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,977
|
|
| 14.11.2014, 15:41 | |
|
Так у тебя в проекте надписи правильно выставляются при выборе шкалы.
Вопрос-то в чем, можешь толком объяснить?)
0
|
|
|
Техник
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
|
|
| 14.11.2014, 15:45 [ТС] | |
|
FIL, Надписи правильно, а сама стрелка не соответствует введенному значению. Для ввода Edit использую и Button2. Для шкал от -1..0..1 значения нормально работают. А когда ставлю тип шкалы от 0 до 10 к примеру, и ввожу какое то значение, то стрелка показывает совершенно другое.
0
|
|
|
Модератор
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,977
|
||||||
| 14.11.2014, 16:10 | ||||||
|
Для того, чтобы это правильно работало надо вместо констант типа:
0
|
||||||
|
Техник
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
|
|
| 14.11.2014, 19:55 [ТС] | |
|
Это я уже понял) Не понятно какие именно переменные нужно ставить
0
|
|
|
Модератор
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,977
|
|||
| 14.11.2014, 20:07 | |||
|
0
|
|||
|
Техник
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
|
||||||
| 15.11.2014, 09:56 [ТС] | ||||||
|
FIL, тут дело вот в этой формуле:
а вот angleStep, вполне может меняться я думаю, и еще не ясно какую роль играют значения 5 и 20. Добавлено через 16 минут Т.к. angleStep = 12 всегда, (это расстояние между точками) Задача получается следующая, получить: угол 138 при введенном значении 1, 126 при 2, 114 при 3 и т.д. Для этого нужно поменять значения 5 и 20 как я понимаю. Добавлено через 10 минут Эврика! :-) с положительной частью разобрался вроде ) заменил 5 на 0, а 20 на 1 (проще говоря убрал эти значения), и для шкалы типа 0..10, все стало работать как нужно! Остался вопрос, как отразить в другую сторону, для шкалы типа -10..0
0
|
||||||
|
Модератор
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,977
|
|
| 15.11.2014, 10:20 | |
|
Ну элементарные же вычисления.
Допустим: диапазон -10..30 размер шкалы в градусах = 120 начало шкалы = 150 надо поставить стрелку на 0-ое значение Result = 150 - (120 / (30 - (-10))) * (0 - (-10))
1
|
|
|
Техник
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
|
|
| 15.11.2014, 10:59 [ТС] | |
|
FIL, Я сильно извиняюсь, но не могли бы вы в более общем виде формулу эту написать)
0
|
|
|
Модератор
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,977
|
|
| 15.11.2014, 12:07 | |
|
Result = [начало шкалы] - ([размер шкалы] / ([конец диапазона] - [начало диапазона])) * ([устанавливаемое значение] - [начало диапазона])
3
|
|
|
Техник
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
|
|
| 18.11.2014, 12:20 [ТС] | |
|
FIL, Я вас еще немного помучаю ) если не против )) С типами разобрался, все работает. Теперь осталась задача, передвигать стрелку по инерции. Т.е. например было значение 1, поставили 10 - стрелка должна плавно дойти до новой отметки.
Я примерно представляю, что нужно взять старое значение и новое. И с каким то шагом в цикле изменять его. Но до конца с мыслями не могу собраться.
0
|
|
|
Модератор
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,977
|
||
| 18.11.2014, 20:17 | ||
|
В таймере увеличивать текущее значение, пока оно не сравняется с новым и останавливать таймер. Для расчета текущего шага увеличения можно использовать различные формулы, получая тем самым различные эффекты (замедление, плавность и т.п.). Ну или просто увеличивать на константу.
0
|
||
|
Модератор
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,977
|
||||||
| 18.11.2014, 20:20 | ||||||
|
Подправил немного свой пример (может чем поможет):
Код
1
|
||||||
| 18.11.2014, 20:20 | |
|
как нарисовать стрелку в GDI+? Как нарисовать стрелку с наконечником не на конце? как нарисовать стрелку в конце дуги? Как в WPF нарисовать круг и стрелку ? Как на конце линии нарисовать крупную стрелку Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701
Купил два термопринтера QR701.
На сэлф-тесте написано:
Language: PC936 (GB18030).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|
Создание формы заимствованного документа
Maks 03.08.2026
Задача:
Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также
табличная часть со следующими реквизитами:
- Расчетный счет покупателя. . .
|
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача:
В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
|
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов.
Логика кажется понятной:
1. Находим ключевые слова.
2. Добавляем их на. . .
|
|
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302
Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
|
SUNO Ai - Река Без Дна
zorxor 31.07.2026
Автор стихотворения - астрофизик Марина Катыс
Ссылка на сгенерированную музыкальную композицию:
https:/ / suno. com/ song/ 6f6e5464-b290-4650-be6c-44c85f8d8013
Я говорю, что Время- как вода
течет. . .
|
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла:
Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
|
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет
Салют, шампанское, овации!
:drink:
|