Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.12.2014, 18:07
Аспирант
Отправить личное сообщение для DeV1doR Посмотреть профиль Найти все сообщения от DeV1doR
 
Регистрация: 07.12.2014
Сообщений: 30

Связь между графиком и выходными данными.
<!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, и данные не вводить ручками. Нужен совет.
Ответить с цитированием
  #2 (permalink)  
Старый 07.12.2014, 20:20
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

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>

Последний раз редактировалось рони, 07.12.2014 в 20:27.
Ответить с цитированием
  #3 (permalink)  
Старый 07.12.2014, 21:04
Аспирант
Отправить личное сообщение для DeV1doR Посмотреть профиль Найти все сообщения от DeV1doR
 
Регистрация: 07.12.2014
Сообщений: 30

рони,
Да оно спс, щас буду разбираться))) но, если объяснишь, был бы очень признателен.
Ответить с цитированием
  #4 (permalink)  
Старый 07.12.2014, 21:12
Аспирант
Отправить личное сообщение для DeV1doR Посмотреть профиль Найти все сообщения от DeV1doR
 
Регистрация: 07.12.2014
Сообщений: 30

рони,
кажись дошло, создал массив arr со значениями CPT и добавил в график.))
Ответить с цитированием
  #5 (permalink)  
Старый 07.12.2014, 22:37
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

DeV1doR,
document.write(); забудьте об этом смотрите замену строка 40
Ответить с цитированием
  #6 (permalink)  
Старый 07.12.2014, 23:45
Аспирант
Отправить личное сообщение для DeV1doR Посмотреть профиль Найти все сообщения от DeV1doR
 
Регистрация: 07.12.2014
Сообщений: 30

рони,
спс за совет, буду знать. Скажите, пожалуйста, а вот я к примеру сделал сейчас по кнопке обнуление 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'
          }]

Только, вот как бы сделать, можете натолкнуть?
Ответить с цитированием
  #7 (permalink)  
Старый 08.12.2014, 00:27
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

DeV1doR,
читайте доки
<!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>
Ответить с цитированием
  #8 (permalink)  
Старый 08.12.2014, 01:19
Аспирант
Отправить личное сообщение для DeV1doR Посмотреть профиль Найти все сообщения от DeV1doR
 
Регистрация: 07.12.2014
Сообщений: 30

рони,
спс от души)) как я понял читать тут https://developer.mozilla.org/ru/doc...ript/Reference ?
Ответить с цитированием
  #9 (permalink)  
Старый 08.12.2014, 01:44
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

DeV1doR,
да и по вашему плагину посмотрите примеры
http://www.highcharts.com/demo/
Ответить с цитированием
  #10 (permalink)  
Старый 09.12.2014, 01:17
Аспирант
Отправить личное сообщение для DeV1doR Посмотреть профиль Найти все сообщения от DeV1doR
 
Регистрация: 07.12.2014
Сообщений: 30

рони,
хочу совет(ссылок, не знаю, даже, как правильно вбить(), как сделать ввод, через блоки, а не вечно выскакивающее модальное окно prompt, что бы скажем, ввел данные, нажал кнопку, и вуаля строиться)) Не могу насерфить такое(
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
связь между переменными Faab Events/DOM/Window 4 08.10.2013 14:01
Связь между страницами с javascript и php ... и обратно okrip25 AJAX и COMET 7 09.01.2012 14:43
Связь между двумя окнами. iMIhael Общие вопросы Javascript 2 28.11.2011 13:39
"правильный" обмен данными между окнами igrok Events/DOM/Window 1 20.05.2011 18:04
Обмен данными между доменами Armen AJAX и COMET 27 02.03.2011 13:36