07.12.2014, 18:07
|
Аспирант
|
|
Регистрация: 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, и данные не вводить ручками. Нужен совет.
|
|
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.
|
|
07.12.2014, 21:04
|
Аспирант
|
|
Регистрация: 07.12.2014
Сообщений: 30
|
|
рони,
Да оно спс, щас буду разбираться))) но, если объяснишь, был бы очень признателен.
|
|
07.12.2014, 21:12
|
Аспирант
|
|
Регистрация: 07.12.2014
Сообщений: 30
|
|
рони,
кажись дошло, создал массив arr со значениями CPT и добавил в график.))
|
|
07.12.2014, 22:37
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,112
|
|
DeV1doR,
document.write(); забудьте об этом смотрите замену строка 40
|
|
07.12.2014, 23:45
|
Аспирант
|
|
Регистрация: 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'
}]
Только, вот как бы сделать, можете натолкнуть?
|
|
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>
|
|
08.12.2014, 01:19
|
Аспирант
|
|
Регистрация: 07.12.2014
Сообщений: 30
|
|
|
|
09.12.2014, 01:17
|
Аспирант
|
|
Регистрация: 07.12.2014
Сообщений: 30
|
|
рони,
хочу совет(ссылок, не знаю, даже, как правильно вбить(), как сделать ввод, через блоки, а не вечно выскакивающее модальное окно prompt, что бы скажем, ввел данные, нажал кнопку, и вуаля строиться)) Не могу насерфить такое(
|
|
|
|