Мне нужно построить стволы скважин на карте горизонта и в вертикальном разрезе.
У меня нет проблем с картами, но вертикальные сечения могут иметь разные углы направления, поэтому мне приходится проецировать на них профиль ствола скважины, а для ста точек это занимает несколько минут.
Я использую три переменные для каждой точки траектории ствола скважины: восточное направление, северное направление и вертикальная глубина.
Для карты все очень просто: восточное положение X и северное направление Y:
var act_plan = [];
некоторый цикл
for(...)
{
act_plan.push({x: upperX, y: upperY, name: "Inc=" + Inc + ", Azi=" + AzimAccepted + " @ " + MD});
}
...
if(act_plan.length > 0)
{
planChart.addSeries(
{
id: "act_plan",
color: "black",
name: "bla-bla-bla",
data: act_plan,
dashStyle: "Solid",
lineWidth: 2,
type: 'spline',
crisp: false
},
false, false
);
}
...
planChart.redraw(true);
Но для вертикального разреза, видимо, я делаю что-то не так
var act_profileX = [];
некоторый цикл
for(...)
{
act_profileX.push({x: calcShiftAway(upperX, upperY, 0), y: upperTVD, name: "Inc=" + Inc + ", Azi=" + AzimAccepted + " @ " + MD});
}
где
function calcShiftAway(east, nord, VSrad) // X,Y coordinates and a directional angle in radians of a vertical section
{
return (-nord*Math.cos(VSrad) + east*Math.sin(VSrad)); // rotate coordinates
}
...
if(act_profileX.length > 0)
{
var oPl = sectionChartWest.addSeries(
{
id: "act_plan", // the same id as for the plan
color: "black",
name: "bla-bla-bla",
data: act_profileX, //
dashStyle: "Solid",
lineWidth: 2,
type: 'spline',
crisp: false
},
false, false
);
oPl = rotateProfile("act_plan"); // I used var OPl to be sure that the series have been formed before the next manipulations with them (paranoia)
}
где
function rotateProfile(data_id)
{
var oProfile = sectionChartWest.get(data_id);
var oPlan = planChart.get(data_id);
if(typeof(oProfile) === "undefined")
{
alert("There is no such a profile " + oProfile + " - it's a program Error");
return false;
}
if(typeof(oPlan) === "undefined")
{
alert("There is no such a plan " + oPlan + " - it's a program Error");
return false;
}
if(oProfile.data.length != oPlan.data.length || oProfile.data.length
Подробнее здесь: https://stackoverflow.com/questions/798 ... ies-slowly
HighCharts медленно обновляет серию ⇐ Javascript
Форум по Javascript
1766908723
Anonymous
Мне нужно построить стволы скважин на карте горизонта и в вертикальном разрезе.
У меня нет проблем с картами, но вертикальные сечения могут иметь разные углы направления, поэтому мне приходится проецировать на них профиль ствола скважины, а для ста точек это занимает несколько минут.
Я использую три переменные для каждой точки траектории ствола скважины: восточное направление, северное направление и вертикальная глубина.
Для карты все очень просто: восточное положение [b]X[/b] и северное направление [b]Y[/b]:
var act_plan = [];
некоторый цикл
for(...)
{
act_plan.push({x: upperX, y: upperY, name: "Inc=" + Inc + ", Azi=" + AzimAccepted + " @ " + MD});
}
...
if(act_plan.length > 0)
{
planChart.addSeries(
{
id: "act_plan",
color: "black",
name: "bla-bla-bla",
data: act_plan,
dashStyle: "Solid",
lineWidth: 2,
type: 'spline',
crisp: false
},
false, false
);
}
...
planChart.redraw(true);
Но для вертикального разреза, видимо, я делаю что-то не так
var act_profileX = [];
некоторый цикл
for(...)
{
act_profileX.push({x: calcShiftAway(upperX, upperY, 0), y: upperTVD, name: "Inc=" + Inc + ", Azi=" + AzimAccepted + " @ " + MD});
}
где
function calcShiftAway(east, nord, VSrad) // X,Y coordinates and a directional angle in radians of a vertical section
{
return (-nord*Math.cos(VSrad) + east*Math.sin(VSrad)); // rotate coordinates
}
...
if(act_profileX.length > 0)
{
var oPl = sectionChartWest.addSeries(
{
id: "act_plan", // the same id as for the plan
color: "black",
name: "bla-bla-bla",
data: act_profileX, //
dashStyle: "Solid",
lineWidth: 2,
type: 'spline',
crisp: false
},
false, false
);
oPl = rotateProfile("act_plan"); // I used var OPl to be sure that the series have been formed before the next manipulations with them (paranoia)
}
где
function rotateProfile(data_id)
{
var oProfile = sectionChartWest.get(data_id);
var oPlan = planChart.get(data_id);
if(typeof(oProfile) === "undefined")
{
alert("There is no such a profile " + oProfile + " - it's a program Error");
return false;
}
if(typeof(oPlan) === "undefined")
{
alert("There is no such a plan " + oPlan + " - it's a program Error");
return false;
}
if(oProfile.data.length != oPlan.data.length || oProfile.data.length
Подробнее здесь: [url]https://stackoverflow.com/questions/79856072/highcharts-updates-series-slowly[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия