Այս պահին ես իրական ժամանակի աղյուսակ եմ կառուցում: Տվյալները, որոնք հոսում են WebSockets-ի միջոցով, հիմնականում բաղկացած են պարզ ժամանակացույցի/արժեքի զույգերից և գծվում են ժամանակի վրա հիմնված գծային գծապատկերում: Հիմա ես հանդիպեցի մի խնդրի և մտածում եմ, թե որն է լինելու ամենակայուն և էլեգանտ միջոցը.
Գծապատկերի Y-ի մասշտաբավորումը պետք է դինամիկ լինի, հետևաբար ես պետք է մշտապես հետևեմ տեսանելի տվյալների նվազագույն/մաքս արժեքներին: Այս մասը հեշտ է, քանի որ դուք պարզապես պետք է ստանաք min/max արժեքները տվյալների զանգվածից և դրանք սահմանեք որպես գծապատկերների ստորին և վերին սահմաններ:
Այժմ ես ուզում էի այս սահմանային արժեքներին մի քանի լիցք ավելացնել՝ գեղեցիկ և կլոր սահմանային արժեքներ ստանալու համար: Օրինակ, եթե տվյալ տիրույթում առավելագույն արժեքը, ասենք, 24.7
է, ես ուզում եմ, որ վերին սահմանը լինի 30
: Ինձ անհրաժեշտ է մեկ պարամետրով ֆունկցիա, որը դուրս է բերում հաջորդ վերին «գեղեցիկ» արժեքը: Ահա մի քանի օրինակներ.
0.13 --> 1
97.2 --> 100
17.08 --> 20
768 --> 800
-3.4 --> 0
116843 --> 200000
0.003 --> 0.01
Կա՞ մաթեմատիկական ֆունկցիա, որը ես կարող եմ օգտագործել: Ինձ հաստատ ինչ-որ կայուն բան է պետք, բայց դրան հասնելու ոչ մի ճանապարհ չեմ տեսնում՝ չսկսելով թվերը հաշվել և վերլուծել առաջին թվանշանը և այլն, ինչը շատ տգեղ կլիներ:
Շնորհակալություն նախօրոք ձեր օգնության համար:
Հարգանքներով, Ռոբ
Հ.Գ. Ես խոսել եմ վերին սահմանի արժեքը ստանալու մասին, ինձ նաև անհրաժեշտ է ֆունկցիա ստորին սահմանի համար, իհարկե, բայց ես ենթադրում եմ, որ կարող եմ դա բխել վերին սահմանի ֆունկցիայից, երբ մենք լուծում գտնենք:
if statement
-ով 0,1-ից ցածր արժեքների համար, դուք պետք է գտնեք բազմապատկիչը և բազմապատկեք -› առաստաղ -› բաժանումը: Բացասական արժեքների համար, որոնք դուք տեղադրել եք ձեր օրինակներում, որ -3.4-ը պետք է լինի 0: Ես հասկացա, որ բացասական արժեքները պետք է հանգեցնեն 0-ի: 22.08.2013