LINUX.ORG.RU

Непонятно, что ты хочешь получить. gnuplot же на сишечке. Ты хочешь полностью все сделать на клиенте (фронте), тогда альтернативы WebAssembly не будет? Или же просто вставить в фронт картинку, генерируемую на бэке, тогда это делается элементарно?

goingUp ★★★★★
()
Ответ на: комментарий от buddhist

Посмотрел

https://d3-graph-gallery.com/line.html

тут так не просто, блин https://d3js.org/d3-scale/log

и в голове не укладывается как это https://dropmefiles.com/Fa3aw можно на 3d написать.

saufesma
() автор топика
Последнее исправление: saufesma (всего исправлений: 2)
Ответ на: комментарий от goingUp

Когда узнал о WebAssembly я нашёл вставленный gnuplot

https://hostcat.fhsu.edu/cdclark/static/apps/gnuplot/

подумал сделать так же, а теперь, как вот такое https://dropmefiles.com/Fa3aw впихнуть в gnuplot, даже не знаю.

saufesma
() автор топика
Ответ на: комментарий от saufesma

и в голове не укладывается как это https://dropmefiles.com/Fa3aw можно на 3d написать.

график мягко говоря не сложный..

js-чертилок (у которых d3 как правило основа) - воз и маленькая тележка.

PS/ но если у вас всё так-же как вы скриншот запостили, то не поможет...

MKuznetsov ★★★★★
()
Ответ на: комментарий от saufesma

тут так не просто, блин https://d3js.org/d3-scale/log

Здесь функции настройки осей. В гнуплоте тоже оси и всё остальное настраивать придётся. По вашей ссылке там всё тоже на JS, просто под капотом wasm-библиотека дёргается.

Кстати, может быть будет проще через Canvas API все линии вручную отрисовать, если не требуется никакой интерактивности.

static_lab ★★★★★
()
Ответ на: комментарий от static_lab

Когда-то увидел https://stackoverflow.com/questions/55325272/plotting-intersecting-lines-in-g... и думал как-то прикрутить под мой график, но что-то не получается. Мой график очень даже интерактивный, я нахожу нужные мне значения в qcad. Мне всегда известна ордината w0 по которой нахожу по абсциссе q/v. И никаких мыслей!

Нашёл такое https://math.stackexchange.com/questions/1491499/finding-equation-from-log-lo... но у меня кривые и каким уравнением они описываются никто не знает.

saufesma
() автор топика
Последнее исправление: saufesma (всего исправлений: 2)
Ответ на: комментарий от goingUp

Это небольшая программка для сварщиков, четыре формулы расчётов зависящих от этих графиков. С языком не понятно, у меня LispWorks Hobbyist Edition. Никакой идеи под какой лицензией её распространять.

saufesma
() автор топика

Тебе номограмму чтоли нарисовать? Лепи тупо в canvas на js. Там всё как в старые добрые времена.

Ну или какой-нибудь plotly возьми, но я хз как там с номограммами.

no-such-file ★★★★★
()
Последнее исправление: no-such-file (всего исправлений: 2)
Ответ на: комментарий от no-such-file

Идея хорошая, но представь сварщика которому эти компьютеры по барабану ему нужно кнопку нажать, увидеть результат и вперёд. Потому мучаюсь. Да тут ещё подал заявку на изобретение, программка очень хороша с изобретением, а без ну так. goingUp

saufesma
() автор топика
Последнее исправление: saufesma (всего исправлений: 1)
Ответ на: комментарий от no-such-file

Верно, там до меня и для меня всё интерполировали давным давно. А мне надо воспользоваться интерполяционной формулой Ньютона для случая неравноотстоящих узлов, найти интерполяционный многочлен Ньютона на каждую кривую из графика, переписать многочлены на Common Lisp и пользоваться.

saufesma
() автор топика
Ответ на: комментарий от Norgat

Если у тебя есть код на C/C++, но тебе он нужен в браузере на фронтенде, то вариант только один - wasm

у gnuplot есть терминал SVG. Так что выплюнуть график из C/C++ в модном формате не проблема.

и это вы «график» не смотрели - там несколько линий. Чтобы с бека передать только массивы данных, а подобное черчение сделать на фронте - решается гуглением про js plotting library, выбиранием по вкусу и чтением документации.

какой нахрен web-assembly :-)

MKuznetsov ★★★★★
()
Ответ на: комментарий от MKuznetsov

Понятия не имею, что там за задача у человека. Случаи разные могут быть. Никаких гарантий, что он привел реальные данные или полную задачу - нет.

Norgat ★★★★★
()

WebAssembly

Это вещь чуть менее чем полностью бесполезная. И она не позволит тебе запустить произвольный сишный код в браузере. Оно для числодробилок, где типизация много тактов экономит

rtxtxtrx ★★
()
Последнее исправление: rtxtxtrx (всего исправлений: 1)
Ответ на: комментарий от no-such-file

Да я просто отклоняюсь от темы. Проигрываю варианты. Нашёл интерполяционный многочлен Ньютона появилась мысль откинуть WebAssembly и накатать на CL без чертилок. Хотя, многочлен Ньютона y = L(x) при известном х находим у, а у меня у известен надо найти х. График выглядит удобней.

ты хочешь вебмордру сделать для бэка на CL, или весь код на CL запихать в wasm и чтобы оно оттуда рисовало?

О, я даже не предполагал о таком. А чтобы рисовало, да наглядно, а разберусь ли я с d3?

Считалки ширины шва и глубины провара я подтвердил только одним опытом с отличным результатом, а продолжить не могу т.к. лабораторию под другие нужды завода заняли.

Идея начинает рисоваться, что если весь код хранить на сервере в js, а клиенту выдавать расчёт в pdf.

saufesma
() автор топика
Последнее исправление: saufesma (всего исправлений: 1)
Ответ на: комментарий от MKuznetsov

Я умею пользоваться логарифмической сеткой, а вот строить нет.

Это не то https://observablehq.com/@d3/continuous-scales

В пакете matplotlib есть ax.loglog то, что мне надо.

Вот так не запускается надо ещё что-то включать

<html>
<head><title>mpld3</title></head>
<body>
  <script type="text/javascript">
    mpld3.show() 
  ax.loglog(x, np.sinc(x) * np.exp( -np.abs(x/10)) )
</script>
</body>
</html>

saufesma
() автор топика
Ответ на: комментарий от no-such-file

Plotly попробовал


<html>
<head>
               <script src="https://cdn.plot.ly/plotly-2.32.0.min.js" charset="utf-8"></script>
</head>
<body>
<div id="myDiv" style="width:700px;height:700px;"></div>
<script>
  var trace1 = {

  x: [0, 1, 2, 3, 4, 5, 6, 7, 8],

  y: [8, 7, 6, 5, 4, 3, 2, 1, 0],

  type: 'scatter'

};


var trace2 = {

  x: [0, 1, 2, 3, 4, 5, 6, 7, 8],

  y: [0, 1, 2, 3, 4, 5, 6, 7, 8],

  type: 'scatter'

};


var data = [trace1, trace2];


var layout = {

  xaxis: {

    type: 'log',

    autorange: true

  },

  yaxis: {

    type: 'log',

    autorange: true

  }

};

  MYDIV = document.getElementById('mydiv');
Plotly.newPlot(myDiv, data, layout);
</script>
</body>
</html>

saufesma
() автор топика
Ответ на: комментарий от no-such-file

по ординате почему-то шкала начинается с 8, 9. Так график динамический можно шкалу ординаты вытащить и запихать обратно! Подводя курсор мыши на шкалу курсор превращается в стрелки вверх/вниз нажимаешь левую кнопку мыши и тащишь вверх или вниз.

<html>
<head>
               <script src="https://cdn.plot.ly/plotly-2.32.0.min.js" charset="utf-8"></script>
</head>
<body>
<div id="myDiv" style="width:1700px;height:1700px;"></div>
<script>
  var trace1 = {

      x: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 120],

      y: [120, 100, 90, 80, 70, 60, 50, 40, 30, 20, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0],

  type: 'scatter'

};


var trace2 = {

    x: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 120],

    y: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 120],

  type: 'scatter'

};


var data = [trace1, trace2];


var layout = {

  xaxis: {

    type: 'log',

    autorange: true

  },

  yaxis: {

    type: 'log',

    autorange: true

  }

};

  MYDIV = document.getElementById('mydiv');
Plotly.newPlot(myDiv, data, layout);
</script>
</body>
</html>
saufesma
() автор топика
Последнее исправление: saufesma (всего исправлений: 3)