Страница 1 из 1

Номер элемента в XY Graph

Добавлено: 23 сен 2015, 13:11
kiparym
Всем добрый день! Требуется совет!
Как на графике XY Graph с неравномерной шкалой X определить элемент массива, на который указывает указатель мыши. За ранее благодарю.

Re: Номер элемента в XY Graph

Добавлено: 23 сен 2015, 17:37
Borjomy_1
Определить по указателю мыiи нельзя. Можно по положению курсора (Cursors). Предварительно надо добавить курсор и настроить.
Далее есть такой элемент "Threshold 1D Array". подаете на него массив X составляющих графика и полученные координаты курсора в Event XYGraph/Cursor Release (свойство CursLoc.X) На выходе получаете индекс элемента, необходимым образом его округляете и получаете ближайшую точку. Если график не монотонно возрастает по шкале X, то программа будет немного сложнее.

Re: Номер элемента в XY Graph

Добавлено: 24 сен 2015, 09:25
kiparym
Спасибо за подсказку!!!
Что касается обнаружении указателя мышки, то может быть можно (после нажатия клавиши мышки) пересчитать по пикселям – Event Structure -> «XY Graph» : Mouse Down -> Coords -> ???.

Re: Номер элемента в XY Graph

Добавлено: 24 сен 2015, 20:53
Borjomy_1
Есть свойство Plot Area Bounds, которое содержит координаты рамки графика. Есть также свойства XScale.Range.Maximum и Minimum
Зная размеры графика в пикселях и единицах диапазона шкалы, можно, путем вычислений, таки получить искомое. Дерзайте.

Re: Номер элемента в XY Graph

Добавлено: 25 сен 2015, 11:31
kiparym
Спасибо Borjomy_1. Идея понятна, но в моём случае наблюдается нестыковка.

p.s. Вероятно, необходимо учесть размер ½ указателя мышки?
Во вложении решение поставленной задачи.

Re: Номер элемента в XY Graph

Добавлено: 25 сен 2015, 21:41
Borjomy_1
Почему не использовали Plot Area Bounds?

з.ы. Как вы думаете, что будет, если цикл формирования графика переместить правее основного цикла (поменять их местами на диаграмме)?

Re: Номер элемента в XY Graph

Добавлено: 26 сен 2015, 17:07
kiparym
Borjomy_1 ! Ваш вариант действительно лучше. Думаю, что элемент «Plot Bounds» всё-таки необходимо выделять из «XYGraph (strict)»- так более логично.
Что касается перемещения формирования графика внутрь цикла, то это противоречит поставленной задачи. Я должен исследовать уже имеющийся график данных.

Re: Номер элемента в XY Graph

Добавлено: 26 сен 2015, 17:27
Borjomy_1
если цикл формирования графика переместить правее основного цикла
Имеется в виду то, что порядок несвязанных операций в Labview не определен. Теоретически они выполняются одновременно. В вашем коде это маловероятно, однако в будущем рекомендую все-таки явно указывать порядок вычислений, например, с помощью Sequence

Re: Номер элемента в XY Graph

Добавлено: 26 сен 2015, 18:19
kiparym
Имеется в виду то, что порядок несвязанных операций в Labview не определен
Если в отладочном режиме определена последовательность выполнения действий, то есть гарантия, что данная последовательность сохранится в EXE?
(Но это уже другая тема!)

Re: Номер элемента в XY Graph

Добавлено: 26 сен 2015, 23:40
Borjomy_1
Гарантий нет. Поскольку отладочный режим больше времени тратит на проведение "шарика" по тренду. Чем длиннее линия, соединяющая два компонента, тем больше времени занимает передача значения. В реальности длины линий никакого значения не имеют, а имеет значение время выполнения компонент.