Вверх ↑
Этот топик читают: Гость
Ответов: 122
Рейтинг: 1
#1: 2025-08-02 18:31:12 ЛС | профиль | цитата
Подскажите почему компонент Plotter выдает не правильные значения сетки по вертикали? Если в графике мало интенсивных линий то нормально отображается, если много то нет.


А компонент PlotMouseValues в поток с OnMouseDown выдает вместо значения Y на графике какие-то цифры. Например 294.012244897959 Значение по X выдает не совсем точно. По X у меня 3694 точки, щёлкаешь мышкой выдает на 4-10 точку в плюс или минус.

Редактировалось 2 раз(а), последний 2025-08-03 10:18:22
карма: 1

0
Ответов: 8963
Рейтинг: 824
#2: 2025-08-03 13:00:10 ЛС | профиль | цитата
Andrej77rv, "правильные" значения будут, если в свойстве MaxH MinH установлены нужные вам границы, а если там "0", то график меняет сетку по текущим значениям.
Andrej77rv писал(а):
4-10 точку
Ну а что, при форме в 1000 пикселей вы хотите разместить 4000 пикселей для мышки
Есть свойство MouseContr для изменения масштаба колёсиком мышки.
Andrej77rv писал(а):
294.012244897959
Поставьте Math и округляйте по желанию.
карма: 19

0
Ответов: 946
Рейтинг: 199
#3: 2025-08-03 13:07:18 ЛС | профиль | цитата
Andrej77rv писал(а):
А компонент PlotMouseValues в поток с OnMouseDown выдает вместо значения Y на графике какие-то цифры. Например 294.012244897959 Значение по X выдает не совсем точно. По X у меня 3694 точки, щёлкаешь мышкой выдает на 4-10 точку в плюс или минус.

Без схемы не очень понятно, в чём у тебя проблема. Вроде всё выдаёт правильно.
https://forum.hiasm.com/getfile/40597
И что такое «мало интенсивных линий» в контексте графика?

--- Добавлено в 2025-08-03 13:09:05

Леонид, Чуть-чуть не успел

Редактировалось 2 раз(а), последний 2025-08-03 13:09:30
карма: 19

0
файлы: 1для Andrej77rv.zip [4.7KB] [15]
Ответов: 122
Рейтинг: 1
#4: 2025-08-03 13:10:12 ЛС | профиль | цитата
Gunta писал(а):
И что такое «мало интенсивных линий» в контексте графика?

Это значит мало линий на гистограмме которые имеют большое значение по Y. Позже схему выложу.
карма: 1

0
Ответов: 946
Рейтинг: 199
#5: 2025-08-03 13:21:39 ЛС | профиль | цитата
Andrej77rv писал(а):
Это значит мало линий на гистограмме которые имеют большое значение по Y.

Выше я тебе пример сделал. Он у тебя работает?
карма: 19

0
Ответов: 122
Рейтинг: 1
#6: 2025-08-03 13:56:03 ЛС | профиль | цитата
Леонид писал(а):
"правильные" значения будут, если в свойстве MaxH MinH установлены нужные вам границы, а если там "0", то график меняет сетку по текущим значениям.
Andrej77rv писал(а):

Они то правильные, то нет. Хотя я ничего не меняю. Мне надо чтобы по Y динамически менялось значение и устанавливалось самое большое. Наверно так и должно быть если бы всё правильно работало. По X же так работает если там даже 0 поставить. А постоянное так не удобно. И на счет мышки я не понял что там надо изменить.

https://disk.yandex.ru/d/RZaJHEt8l2GebQ

--- Добавлено в 2025-08-03 14:01:44

Gunta писал(а):
Выше я тебе пример сделал. Он у тебя работает?

Да работает. Но у меня перебор из одной строки. Может в этом разница.

--- Добавлено в 2025-08-03 14:14:49

В схеме Hex преобразования. Это так порт выдает то, что в файле "строка".

Редактировалось 15 раз(а), последний 2025-08-03 15:22:18
карма: 1

0
Ответов: 122
Рейтинг: 1
#7: 2025-08-03 15:44:01 ЛС | профиль | цитата
Там счётчик по X для гистограммы оказывается не нужно. Получается компонент гистограмма сам считает значения по X ?

Редактировалось 4 раз(а), последний 2025-08-03 16:24:29
карма: 1

0
Ответов: 946
Рейтинг: 199
#8: 2025-08-03 17:55:44 ЛС | профиль | цитата
Andrej77rv,
В архиве https://disk.yandex.ru/d/cA6PJC4gDtp8XA
График.sha – твоя схема
Графи 2.sha – твоя схема, но распутанная
Графи 3.sha- Исправлена и немного сокращённая
карма: 19

0
Ответов: 122
Рейтинг: 1
#9: 2025-08-03 18:28:31 ЛС | профиль | цитата
Gunta писал(а):
Графи 3.sha- Исправлена и немного сокращённая

Спасибо! Сокращение конечно это хорошо. Но вы не заметили что в вашей схеме сетка по Y все равно не правильная? Даже если вы выставили 4096 максимум.
карма: 1

0
Ответов: 946
Рейтинг: 199
#10: 2025-08-03 19:02:03 ЛС | профиль | цитата
Andrej77rv писал(а):
Сокращение конечно это хорошо. Но вы не заметили что в вашей схеме сетка по Y все равно не правильная? Даже если вы выставили 4096 максимум.

Положи схему в ту же папку

Add(MainForm,2953706,287,154)
{
Width=1329
Height=722
link(onCreate,644369:doData,[])
}
Add(Hub,2011678,238,385)
{
OutCount=3
link(onEvent1,4733271:doClear,[(396,391)(396,279)])
link(onEvent2,12538615:doClear,[(599,398)(599,279)])
}
Add(Plotter,4889914,448,483)
{
Left=55
Top=115
Width=1025
Height=515
Name="123"
GridStyle=0
MinH=0.001
MaxH=4096
MinW=0.001
MaxW=3694
LeftMargin=50
MouseControl=1
Point(onMouseDown)
Point(onMouseWheel)
Point(doMinH)
Point(doMinW)
link(onMouseWheel,15270642:doCalc,[])
}
Add(PlotHistogram,4733271,420,266)
{
Grapher="123"
Color=8388608
Step=1
Point(ValuesX)
Point(ValuesY)
link(onAdd,9492653:doCompare,[])
}
Add(StrCatDelim,9299780,560,266)
{
Delimiter=">>"
link(onStrCatDlm,12538615:doAdd,[])
link(Str1,12060551:Var3,[(566,250)])
link(Str2,9107841:NumSubStr,[(573,257)(552,257)(552,313)(174,313)])
}
Add(If_else,9492653,490,266)
{
Type=2
link(onTrue,9299780:doStrCatDlm,[])
link(Op1,12060551:Var2,[])
link(Op2,12361489:Value,[])
}
Add(Math,14331857,315,266)
{
OpType=1
Op1=4096
link(onResult,4733271:doAdd,[])
}
Add(ListBox,12538615,616,266)
{
Left=1090
Top=130
Width=205
Height=490
DataType=1
Point(String)
link(onClick,16211211:doReplace,[])
}
Add(Label,6664926,392,70)
{
Left=10
Top=75
Width=75
Caption="Детектор"
}
Add(Label,4650938,497,119)
{
Left=10
Top=95
Width=85
Caption=""
}
Add(TrackBarRush,7292762,399,168)
{
Left=5
Top=130
Width=20
Height=490
Max=0
Min=-4096
Position=-800
AbsPosition=0
Kind=1
AntiAlias=0
ThumbWidth=20
DotsCount=10
link(onPosition,11960507:doEvent1,[])
}
Add(Hub,11960507,455,168)
{
link(onEvent1,4650938:doText,[(480,174)(480,125)])
link(onEvent2,12361489:doValue,[])
}
Add(Memory,12361489,497,175)
{
link(onData,3091039:doAxis,[])
}
Add(PlotAxis,3091039,546,175)
{
Grapher="123"
link(X,12885843:Var2,[])
link(Angle,12885843:Var3,[(566,159)])
}
Add(PlotMouseValues,2849442,448,539)
{
Grapher="123"
link(onMouseDown,3411395:doOperation,[])
}
Add(Hub,2754218,658,490)
{
InCount=2
OutCount=1
link(onEvent1,6497428:doText,[])
}
Add(Memory,7608031,819,217)
{
Default=Integer(3000)
}
Add(Hub,3380015,581,539)
{
link(onEvent1,3446424:doValue,[(599,545)(599,510)])
link(onEvent2,2754218:doEvent2,[(652,552)(652,503)])
}
Add(CounterEx,3446424,609,490)
{
Max=3694
Point(doPrev)
Point(doValue)
link(onNext,2754218:doEvent1,[])
}
Add(PlotAxis,16122516,812,273)
{
Grapher="123"
Angle=90
link(Y,7608031:Value,[])
}
Add(ListBox,8515488,98,196)
{
Left=205
Top=65
Width=715
Height=50
FileName="Строка.txt"
MultiSelect=0
Point(doSave)
Point(doLoad)
Point(doSelectAll)
Point(String)
}
Add(Button,5111421,14,231)
{
Left=215
Top=25
Width=90
link(onClick,8227847:doEvent1,[])
}
Add(DoData,11661877,119,266)
{
link(onEventData,9107841:doEnum,[])
link(Data,8515488:String,[])
}
Add(Hub,8227847,63,231)
{
OutCount=3
link(onEvent1,8515488:doLoad,[])
link(onEvent2,8515488:doSelectAll,[])
link(onEvent3,11661877:doData,[(88,251)(88,272)])
}
Add(Button,13704670,189,385)
{
Left=345
Top=25
Width=100
Caption="Очистка"
link(onClick,2011678:doEvent1,[])
}
Add(Hub,13755550,770,273)
{
InCount=2
OutCount=1
link(onEvent1,16122516:doAxis,[])
}
Add(Edit,6497428,700,490)
{
Left=725
Top=20
Width=170
Text=""
link(onChange,13755550:doEvent2,[(753,496)(753,286)])
}
Add(Label,3418937,679,182)
{
Left=1090
Top=90
Width=175
Caption="Интенсивность Y >> Линия X"
}
Add(DataToFileEx,2610789,266,266)
{
DataSize=2
link(onGet,14331857:doOperation,[])
}
Add(Str_Enum,9107841,168,266)
{
Delimiter=""
Step=4
link(onEnum,5886522:doConvert,[])
}
Add(StreamConvertor,5886522,217,266)
{
Mode=1
link(onResult,2610789:doGet,[])
}
Add(Memory,16024094,546,119)
{
Default=Integer(0)
}
Add(GetDataEx,12885843,546,154)
{
link(Data,16024094:Value,[])
}
Add(GetDataEx,12060551,490,245)
{
Angle=3
link(Data,14331857:Result,[(473,250)(473,306)(321,306)])
}
Add(DoData,644369,343,168)
{
Data=Integer(-800)
link(onEventData,7292762:doPosition,[])
}
Add(Replace,16211211,665,273)
{
SubStr=">>"
DestStr="#"
link(onReplace,14821463:doSplit,[])
}
Add(MultiStrData,14821463,714,273)
{
Char="#"
From=1
Count=1
link(onPart1,13755550:doEvent1,[])
}
Add(Math,3411395,497,539)
{
OpType=35
Op2=1
link(onResult,3380015:doEvent1,[])
}
Add(IndexToChanel,15704521,539,490)
{
Count=3
link(onEvent1,3446424:doNext,[])
link(onEvent3,3446424:doPrev,[(578,510)(578,503)])
}
Add(MathParse,15270642,497,490)
{
MathStr="sign(%1) + 1"
link(onResult,15704521:doEvent,[])
}


Редактировалось 1 раз(а), последний 2025-08-03 19:03:12
карма: 19

0
Ответов: 122
Рейтинг: 1
#11: 2025-08-03 19:12:08 ЛС | профиль | цитата
Gunta писал(а):
Положи схему в ту же папку

Да теперь работает. А максимум по Y можно и не ставить он сам максимум выставляет.

--- Добавлено в 2025-08-03 19:12:56

А что поменяли?

Редактировалось 1 раз(а), последний 2025-08-03 19:12:56
карма: 1

0
Ответов: 946
Рейтинг: 199
#12: 2025-08-03 19:33:18 ЛС | профиль | цитата
Andrej77rv писал(а):
А что поменяли?

Просто отодвинул границу графика слева. Свойство - Margin-Left


Редактировалось 1 раз(а), последний 2025-08-03 19:33:28
карма: 19

0
Ответов: 122
Рейтинг: 1
#13: 2025-08-03 19:36:05 ЛС | профиль | цитата
Интересно...По умолчанию значит там настроено не правильно. Я там ничего не настраивал.

Редактировалось 4 раз(а), последний 2025-08-03 19:58:25
карма: 1

0
Ответов: 946
Рейтинг: 199
#14: 2025-08-03 19:40:21 ЛС | профиль | цитата
Andrej77rv писал(а):
.По умолчанию значит там настроено не правильно. Я там ничего не настраивал.

Для этого и нужны свойства компонентов чтобы их под свои нужды настраивать.
карма: 19

0
Ответов: 122
Рейтинг: 1
#15: 2025-08-03 19:58:40 ЛС | профиль | цитата
Gunta писал(а):

Для этого и нужны свойства компонентов чтобы их под свои нужды настраивать.

А на счёт компонента PlotMouseValues что можете сказать? Он так должен выдавать после точки большой набор цифр?

Редактировалось 2 раз(а), последний 2025-08-03 19:59:38
карма: 1

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)