Связь между графиком и выходными данными.
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> div { float: left; width: 100%; height: 100%; } </style> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script> <script src="http://code.highcharts.com/highcharts.js"></script> <script src="http://code.highcharts.com/adapters/standalone-framework.js"></script> <script type="text/javascript"> var Q, D, T, AIR, AF, AW; var AR = new Array(8); D = +prompt('Value D is equal to', '0'); Q = +prompt('Value Q is equal to', '0'); function myFunctionCPT() { for (T = -800; T < 1601; T += 400) { AIR = [0.238785488, 0.00900857881, 0.0193221258, 0.132711466, -0.190166916, 0.10379398, -0.0258490883, 0.00245365952]; AF = [0.367102859, 0.384334584, 0.190633867, -0.361766882, 0.263417998, -0.112618047, 0.0257271586, -0.00237417234]; AW = [0.4700077, -0.3206047, 1.196138, 1.728544, 1.55052, -0.8291961, 0.237057, -0.02773743]; for (var i=0; i<8; i++) { AR[i]=(AIR[i]+Q*AF[i]+D*AW[i])/(1+Q+D); } $(function () { $('#CPT-T').highcharts({ title: { text: 'График CPT-T' }, xAxis: { categories: [-800, -400, 0, 400, 800, 1200, 1600] }, series: [{ *!* data: [-160.03, -93.89, 0, 97.172, 202.148, 318.058, 442.871], */!* name: 'd=0; q=0', type: 'spline' }] }); }); R=T/1000; CPTA=94*Q/(1+Q+D); B=R*(AR[0]+R*(AR[1]/2+R*(AR[2]/3+R*(AR[3]/4+R*(AR[4]/5+R*(AR[5]/6+R*(AR[6]/7+R*AR[7]/8))))))); CPT=CPTA+B*1000; document.write('CPT: ' + CPT.toFixed(3) + ' T : ' + T.toFixed(3) + 'K' +'<br>' + '<br>'); } } myFunctionCPT(); </script> </head> <body> <div id="CPT-T"></div> </body> </html> Привет, всем! Вообщем проблема состоит в следующем: хочу сделать так, что бы при подсчете CPT CPT=CPTA+B*1000; каждый последующий результат итерации CPT вносился вот сюда: data: [-160.03, -93.89, 0, 97.172, 202.148, 318.058, 442.871], где значения этого массива и есть результат CPT, и так, что бы график строился сам, при вводе параметров Q и D, и данные не вводить ручками. Нужен совет. |
DeV1doR, так?
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> div { float: left; width: 100%; height: 100%; } </style> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script> <script src="http://code.highcharts.com/highcharts.js"></script> <script src="http://code.highcharts.com/adapters/standalone-framework.js"></script> <script type="text/javascript"> var Q, D, T, AIR, AF, AW; var AR = new Array(8); D = +prompt('Value D is equal to', '0'); Q = +prompt('Value Q is equal to', '0'); var arr = []; function myFunctionCPT() { for (T = -800; T < 1601; T += 400) { AIR = [0.238785488, 0.00900857881, 0.0193221258, 0.132711466, -0.190166916, 0.10379398, -0.0258490883, 0.00245365952]; AF = [0.367102859, 0.384334584, 0.190633867, -0.361766882, 0.263417998, -0.112618047, 0.0257271586, -0.00237417234]; AW = [0.4700077, -0.3206047, 1.196138, 1.728544, 1.55052, -0.8291961, 0.237057, -0.02773743]; for (var i=0; i<8; i++) { AR[i]=(AIR[i]+Q*AF[i]+D*AW[i])/(1+Q+D); } R=T/1000; CPTA=94*Q/(1+Q+D); B=R*(AR[0]+R*(AR[1]/2+R*(AR[2]/3+R*(AR[3]/4+R*(AR[4]/5+R*(AR[5]/6+R*(AR[6]/7+R*AR[7]/8))))))); CPT=CPTA+B*1000; arr.push(CPT) document.getElementById('show').innerHTML += 'CPT: ' + CPT.toFixed(3) + ' T : ' + T.toFixed(3) + 'K' +'<br>' + '<br>' // document.write(); } } $(function () { myFunctionCPT(); $('#CPT-T').highcharts({ title: { text: 'График CPT-T' }, xAxis: { categories: [-800, -400, 0, 400, 800, 1200, 1600] }, series: [{ data: arr, name: 'd='+D+'; q='+Q, type: 'spline' }] }); }); </script> </head> <body> <div id="CPT-T"></div> <p id="show"></p> </body> </html> |
рони,
Да оно спс, щас буду разбираться))) но, если объяснишь, был бы очень признателен. |
рони,
кажись дошло, создал массив arr со значениями CPT и добавил в график.)) |
DeV1doR,
document.write(); забудьте об этом смотрите замену строка 40 |
рони,
спс за совет, буду знать. Скажите, пожалуйста, а вот я к примеру сделал сейчас по кнопке обнуление Q,D и построение заново графика. А, как вместо обнуления, сделать добавление к тому же графику еще 1 сплайн? <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> div { float: left; width: 33%; height: 100%; } </style> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script> <script src="http://code.highcharts.com/highcharts.js"></script> <script src="http://code.highcharts.com/adapters/standalone-framework.js"></script> <script type="text/javascript"> var Q, D, T, AIR, AF, AW; var AR = new Array(8); var arr = []; function myFunctionCPT() { D = +prompt('Value D is equal to', '0'); Q = +prompt('Value Q is equal to', '0'); for (T = -800; T < 1601; T += 400) { AIR = [0.238785488, -0.00900857881, 0.0193221258, 0.132711466, -0.190166916, 0.10379398, -0.0258490883, 0.00245365952]; AF = [0.367102859, 0.384334584, 0.190633867, -0.361766882, 0.263417998, -0.112618047, 0.0257271586, -0.00237417234]; AW = [0.4700077, -0.3206047, 1.196138, 1.728544, 1.55052, -0.8291961, 0.237057, -0.02773743]; for (var i=0; i<8; i++) { AR[i]=(AIR[i]+Q*AF[i]+D*AW[i])/(1+Q+D); } R=T/1000; CPTA=94*Q/(1+Q+D); B=R*(AR[0]+R*(AR[1]/2+R*(AR[2]/3+R*(AR[3]/4+R*(AR[4]/5+R*(AR[5]/6+R*(AR[6]/7+R*AR[7]/8))))))); CPT=CPTA+B*1000; arr.push(CPT); document.getElementById('show').innerHTML += 'CPT: ' + CPT.toFixed(3) + ' T : ' + T + 'K' +'<br>' + '<br>'; //document.write(); } } function plotGraph() { $(function () { myFunctionCPT(); $('#CPT-T').highcharts({ title: { text: 'График CPT-T' }, xAxis: { categories: [-800, -400, 0, 400, 800, 1200, 1600] }, series: [{ data: arr, name: 'd=' + D + '; q=' + Q, type: 'spline' }] }); }); arr =[]; } </script> </head> <body> <div id="CPT-T"></div> <div id="show"></div> <div><input type="button" value="ok" onclick="plotGraph();"/></div> </body> </html> Как я понял, это должно быть добавление новой series: [{ data: arr, name: 'd=' + D + '; q=' + Q, type: 'spline' }] Только, вот как бы сделать, можете натолкнуть? |
DeV1doR,
:write: читайте доки :) <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> div { float: left; width: 33%; height: 100%; } </style> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script> <script src="http://code.highcharts.com/highcharts.js"></script> <script src="http://code.highcharts.com/adapters/standalone-framework.js"></script> <script type="text/javascript"> var Q, D, T, AIR, AF, AW; var AR = new Array(8); function myFunctionCPT() { D = +prompt('Value D is equal to', '0'); Q = +prompt('Value Q is equal to', '0'); var arr = []; for (T = -800; T < 1601; T += 400) { AIR = [0.238785488, -0.00900857881, 0.0193221258, 0.132711466, -0.190166916, 0.10379398, -0.0258490883, 0.00245365952]; AF = [0.367102859, 0.384334584, 0.190633867, -0.361766882, 0.263417998, -0.112618047, 0.0257271586, -0.00237417234]; AW = [0.4700077, -0.3206047, 1.196138, 1.728544, 1.55052, -0.8291961, 0.237057, -0.02773743]; for (var i = 0; i < 8; i++) { AR[i] = (AIR[i] + Q * AF[i] + D * AW[i]) / (1 + Q + D); } R = T / 1000; CPTA = 94 * Q / (1 + Q + D); B = R * (AR[0] + R * (AR[1] / 2 + R * (AR[2] / 3 + R * (AR[3] / 4 + R * (AR[4] / 5 + R * (AR[5] / 6 + R * (AR[6] / 7 + R * AR[7] / 8))))))); CPT = CPTA + B * 1000; arr.push(CPT); document.getElementById('show').innerHTML += 'CPT: ' + CPT.toFixed(3) + ' T : ' + T + 'K' + '<br>' + '<br>'; //document.write(); } return { data: arr, name: 'd=' + D + '; q=' + Q, type: 'spline' } } var series = []; function plotGraph() { series.push(myFunctionCPT()); $('#CPT-T').highcharts({ title: { text: 'График CPT-T' }, xAxis: { categories: [-800, -400, 0, 400, 800, 1200, 1600] }, series: series }); } </script> </head> <body> <div id="CPT-T"></div> <div id="show"></div> <div><input type="button" value="ok" onclick="plotGraph();"/></div> </body> </html> |
рони,
спс от души)) как я понял читать тут https://developer.mozilla.org/ru/doc...ript/Reference ?:haha: |
|
рони,
хочу совет(ссылок, не знаю, даже, как правильно вбить(), как сделать ввод, через блоки, а не вечно выскакивающее модальное окно prompt, что бы скажем, ввел данные, нажал кнопку, и вуаля строиться)) Не могу насерфить такое( |
Часовой пояс GMT +3, время: 09:35. |